2017-08-31 62 views
0

我有多個文件,如下如何刪除文件名中的模式在Unix/Linux操作系統

File1[Pattern].txt 
File2[Pattern].txt 
File3[Pattern].txt 

我想從目錄中的所有文件刪除[圖案]。

最後,文件名應如下所示。

File1.txt 
File2.txt 
File3.txt 
+0

你可以舉一個[Pattern]的例子嗎? –

回答

0

隨着bash參數擴展(${f%%\[*\]*})以剝離從(第一)開始的部分[(左起),以及使用mv重命名:

for f in *.txt; do echo mv -- "$f" "${f%%\[*\]*}".txt; done 

echo掉落爲實際動作。


隨着renameprename),匹配組1所述部分第一[和第二組匹配字面.txt之前匹配。在替換中,我們只使用了捕獲的組:

rename -n 's/^([^[]+)\[[^]]+\](\.txt)$/$1$2/' *.txt 

丟棄 - n實際操作。