2013-07-09 75 views
0

我有一大堆的文件格式UNIX移動命令的正則表達式

blahblah1.java.bakblahblah2.java.bak

而且我想改變與.bak只是.java結束的所有文件。是否可以使用mv命令執行此操作?也許像mv (.*\.java)\.bak $1

回答

1

,如果你是在bash有什麼不對

for i in *java.bak ; do mv "$i" `basename "$i" .bak` ; done 

for i in *java.bak ; do mv "$i" "${i%.bak}" ; done 

。命令行文件匹配與Perl中的正則表達式並不完全相同,或者在bash中進行比較,並且無法捕獲組。請注意區別:例如,*.具有非常不同的含義。

+0

沒什麼,只是不知道你能做到這一點:D –

+0

我一時困惑;這與老年人發生。在我看來,每天都有新的功能添加到bash(「*在我的時代,我們沒有花哨的$ {i%.pdf},我們使用basename,我們很高興擁有它*」),我認爲bash可能已經獲得了像真正的正則表達式:-) – January