簡體   English   中英

如何使用字符串替換重命名linux目錄中的所有文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM