删除曲目编号和标题之间的子字符串

删除曲目编号和标题之间的子字符串

我需要一些 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

将其留在这里,以供将来寻找这种特定格式的人参考。

相关内容