我有很多文件有一個奇怪的命名。例如,file_1_0_a32.elf , file_2_1_a32.elf, file_3_2_a32.elf
在一個目錄中。我想將文件重命名爲新名稱,刪除文件file_2_1_a32.elf
中的_1_a32
,因此名稱變爲file_2.elf
。我可以用mv輕鬆地編寫一個文件列表和新名稱的文件並執行該文件。我想知道如果我可以通過命令行本身做到這一點。我希望xargs
命令可以在這裏有用。這就是我所能想到的ls *.elf | xargs -i mv {} modifiedFileName
。我不知道如何完成這個。基本上我想有另一個階段來糾正由ls
返回的文件名稱,並保留原來的名稱,所以我可以用它作爲mv
的參數。有沒有辦法我可以做到這一點?如何將shell命令的結果替換爲另一個shell命令的輸入
0
A
回答
1
有用於該用途的情況下,存在的工具:rename
rename 's/_\d_a32//' *.elf
的xargs
用例是使用管道值是。如果您想修改管道值且具有原始值,那麼xargs
不適合工作。在這種情況下,最好使用while read
循環結合搜索和替換bash參數擴展。
ls *.elf | while read -r filename
do
mv "$filename" "${filename/_?_a32}"
done
有關更多信息,並在bash參數代替擴展:http://wiki.bash-hackers.org/syntax/pe#search_and_replace
當心,這將覆蓋不用問:file_1_0_a32.elf
和file_1_1_a32.elf
都將被重命名爲file_1.elf
一個覆蓋。如果下劃線之間的數字是單個數字(替換爲:_3_a32
,未替換:_13_a32
),它只會替換該模式。如果任何單個字符位於下劃線之間,它也會替換該模式(替換爲:_x_a32
)。不幸的是,沒有簡單的方法來解決這個限制而不使用其他工具(提示:rename
是這個用例的一個很好的工具)。
rename
工具有時被稱爲prename(perl rename),通常作爲perl軟件包的一部分進行安裝。這裏是在Ubuntu的手冊頁:http://manpages.ubuntu.com/manpages/trusty/man1/prename.1.html
相關問題
- 1. 將shell結果傳遞給另一個shell命令?
- 2. 如果shell命令爲空
- 3. 將vim選擇替換爲shell命令的輸出
- 4. 將兩個shell命令合併到shell中的一個輸出
- 5. 將命令插入Bash Shell
- 6. 命令中的shell變量替換
- 7. 得到一個shell命令的輸出
- 8. 轉換一個SFTP shell腳本命令爲ftp命令
- 9. NSTextView的Shell命令輸出
- 10. 管道輸出命令shell命令
- 11. 轉換DOS命令到Power Shell命令
- 12. 獲取Shell命令的結果C
- 13. 存儲shell命令的結果
- 14. 如何將命令寫入shell腳本?
- 15. 將mongoDB shell命令轉換爲java
- 16. Matlab:帶額外輸入的Shell命令
- 17. 將shell腳本命令轉換爲命令行
- 18. NodeJS - 運行shell命令,退出,傳輸到shell命令
- 19. 格式化一個shell命令輸出
- 20. ps的shell命令
- 21. 可以在POSIX shell中使用命令替換命令嗎?
- 22. Prosyst Shell命令
- 23. 在shell命令
- 24. PHP shell命令
- 25. shell命令
- 26. Shell命令$
- 27. Karaf shell命令
- 28. Hbase shell命令
- 29. shell命令
- 30. bash中多個shell命令輸出的回聲結果
強制性警告:有兩個名爲'rename'的工具,只有其中一個支持這種語法。 – 2015-02-07 07:55:11
@lesmana感謝有關重命名工具的信息。我沒有意識到這一點。但我有困難使它的工作,我的要求仍然是重命名文件,但文件是不同的名稱,我想重命名'file_5_6.s'到'file_5_a32.s'我試過這個變種'-v's/_ \ d + \。s $/_ a32 \ .s /'* .s'但它不起作用,它不會對文件進行更改。我正在使用的正則表達式有問題。這可能有什麼問題? – Gautam 2015-02-08 04:06:22
@UlrichSchwarz我如何找出哪一個是我的重命名工具,我檢查了我的電腦中重命名的手冊頁,它沒有提到正則表達式,它是否意味着提到的語法不起作用? – Gautam 2015-02-08 04:25:16