簡體   English   中英

通過正則表達式重命名文件夾中的所有文件

[英]rename all files in folder through regular expression

我有一個包含很多文件的文件夾,其名稱具有以下結構:

01.artist_name - song_name.mp3

我想瀏覽所有這些文件並使用regexp重命名它們:

/^d+\./

所以我只能得到:

artist_name - song_name.mp3

我如何在bash中做到這一點?

您可以在BASH中執行此操作:

for f in [0-9]*.mp3; do
   mv "$f" "${f#*.}"
done 

使用Perl rename實用程序實用程序。 它可能已安裝在您的Linux版本上或很容易找到。

rename 's/^\d+\.//' -n *.mp3

使用-n標志,將是一次試運行 ,打印將重命名的內容,而無需實際重命名。 如果輸出看起來不錯,請刪除-n標志。

使用'sed'bash命令來這樣做:

for f in *.mp3; 
do 
    new_name="$(echo $f | sed 's/[^.]*.//')"
    mv $f $new_name
done

...在這種情況下,正則表達式[^。] 。*與字符串的第一個句點之前的所有內容匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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