2014-06-07 68 views

回答

0

你可以awk和管做的結果入殼:

ls | awk -F. '{print "mv "$0" "$1"."$3}' | sh 

提示: 這一解決方案只會工作,如果你有文件名中沒有.(在你的在歌詞中的情況)其他。

0

使用參數擴展的形式%

for f in *.mp3.mp3; do 
    mv "$f" "${f%.mp3}" 
done 

您可以在bash手冊頁的參數擴展部分找到相關文檔。

0

bash解決方案如chepner的應該做的伎倆。

我想提的可能性在這裏使用sed,與e命令執行的替換(謹慎使用的結果是:在該行的末尾沒有e命令先嚐試打印會是什麼執行)。

這將使:

ls -1 *.mp3.mp3 | sed 's/\(.+\.mp3\)\.mp3$/mv & \1/e' 

應該列出與.mp3.mp3結束當前目錄中,例如,所有文件:toto.mp3.mp3。字符串toto.mp3.mp3通過管道連接到sed,代替mv toto.mp3.mp3 toto.mp3,打印並執行它。

相關問題