2014-07-12 34 views
1

這是我的bash代碼:參考通配符在MV操作

mv ./foo*foo2*foo3*.foo3 ./foo*.foo3 

我如何使用mv命令重命名我的文件時,請參考第二通配符從./foo*foo2*foo3*.foo3

對不起,如果這聽起來很愚蠢,但我無法在任何地方找到答案。也許我使用的是錯誤的術語?如果是這樣,請讓我知道。

+0

您不能直接,shell擴展不提供任何這樣的功能。尋找稱爲「重命名」的工具 – Mat

+0

Stack Overflow上有許多問題已經處理了在單個批處理中重命名多個文件;嘗試使用「批量重命名」進行搜索。 – chepner

回答

0

rename工具只是爲:

sh$ touch fooAfoo2Bfoo3C.foo3 
sh$ rename -v 's|foo.*foo2(.*)foo3.*\.foo3|foo$1.foo3|' *.foo3 
#       ^^^^    ^^ 
#      capture the   insert 
#     second "wildcard" ---> here 
fooAfoo2Bfoo3C.foo3 renamed as fooB.foo3 
1

在原始文件所在的目錄上嘗試執行下列重命名命令。

rename 's/^.*\./foo\*\./' *.foo3 

它重命名foo*foo2*foo3*.foo3文件foo*.foo3