[英]How to rename all files in a directory in linux with string substitution?
我想重命名我的 linux 系統目錄中的多個文件....
我的文件名是:
Lec 1 - xxx.webm
Lec 2 - xxx.webm
Lec 3 - xxx.webm
Lec 4 - xxx.webm
名單還在繼續……
這里 xxx 可以是任何字符列表(不一致)....
我想重命名這里的每個文件,如:
mv Lec 1 - xxx.webm Lec 1.webm
mv Lec 2 - xxx.webm Lec 2.webm
mv Lec 3 - xxx.webm Lec 3.webm
等等……
for in 循環可以做,但如何進行替換?
*去掉數字后的所有字符應該是我重命名的文件
這個 for 循環應該可以完成這項工作:
for f in *.webm; do
mv "$f" "${f/ -*/}.webm"
done
${string%substring}
:從$string
后面刪除$substring
最短匹配項。
for i in *.webm; do mv $i ${i%xxx}; done
或查看:
${string%%substring}
:從$string
后面刪除$substring
最長匹配。
如果你安裝了util-linux-ng
:
find . -name "Lec*.webm" | xargs rename s/ -*//
或:
for file in $(find . -name "Lec*.webm")
do
echo mv "$file" "`echo $file | sed s/ -*$//`"
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.