增加多个文件前缀?

时间:2015-06-18 13:16:43

标签: bash sh

我正在寻找Bash中重命名文件前缀的方法。 这些文件都在一个文件夹中。不会有其他文件。

00 - Artist - Title.mp3
01 - Artist - Title.mp3

......等等

01 - Artist - Title.mp3
02 - Artist - Title.mp3

......等等

前缀也可以只是单个(0,1,2,...),双(00,01,02,...),三,......前缀。

2 个答案:

答案 0 :(得分:1)

Perl解决方案:

perl -we 'for (@ARGV) {
              my ($n, $r) = /^([0-9]+)(.*)/;
              rename $_, sprintf("%0" . length($n) . "d", 1 + $n) . $r;
          }' *.mp3

正则表达式匹配将数字提取为$ n,其余为$ r。 $ n + 1然后由sprintf格式化为零填充,长度与原始数字相同。

请注意,它会更改9,99等数字的长度

答案 1 :(得分:0)

这是一项有风险的业务,但它似乎是一个似乎有用的解决方案:

sort -rn

mv -i所以如果有相同艺术家和标题的相邻编号文件,它就不会尝试覆盖任何内容(这可能会发生,但如果我带你的话字面意思)。

$f所以如果有任何案件可以提出来,它会覆盖任何事情。

如果您想要更清晰地将$number分解为$restBEGIN TRANSACTION; TRUNCATE foo; INSERT INTO foo ...; COMMIT; ,请成为我的客人。