我有一个包含大量文件的文件夹,其名称具有以下结构:
01.artist_name - song_name.mp3
我想通过所有这些并使用regexp重命名它们:
/^d+\./
所以我只得到:
artist_name - song_name.mp3
我怎样才能在bash中执行此操作?
答案 0 :(得分:1)
您可以在BASH中执行此操作:
for f in [0-9]*.mp3; do
mv "$f" "${f#*.}"
done
答案 1 :(得分:0)
使用Perl rename
utility实用程序。它可能安装在您的Linux版本上或易于查找。
rename 's/^\d+\.//' -n *.mp3
使用-n
标志,它将是干运行,打印要重命名的内容,而不实际重命名。如果输出看起来不错,请删除-n
标志。
答案 2 :(得分:0)
使用' sed' bash命令:
for f in *.mp3;
do
new_name="$(echo $f | sed 's/[^.]*.//')"
mv $f $new_name
done
...在这种情况下,正则表达式 [^。] 。*匹配字符串第一个句点之前的所有内容。