我需要一些 Bash 技巧方面的帮助。在整理我的音乐收藏时,我遇到了一组以以下格式命名的曲目
%track%. %artist% - %title%.%extension%
我如何使用 sed、awk、grep 或任何其他第三方工具来获取以下格式
%track%. %title%.%extension%
答案1
终于弄清楚了为什么这不起作用 - 我以为的连字符实际上并不是连字符,它们是一些奇怪的 Unicode 字符,看起来几乎和连字符一模一样!所以我的脚本没有识别它。最终,我第一次编写的脚本运行良好:
#!/bin/bash
i=1
for f in *.mp3
do
if [[ $i -lt 10 ]] ; then
name="0$((i++)). "
else
name="$((i++)). "
fi
name="$name$(echo "$f" | sed 's/^[^—]* — //')"
mv --verbose "$f" "$name"
done
将其留在这里,以供将来寻找这种特定格式的人参考。