【发布时间】:2022-01-04 13:07:07
【问题描述】:
我想删除这些文件中的最后一个-2:
$ ls ./
ZVul-1-2s-0-C1-2.fit ZVul-1-2s-2-C1-2.fit ZVul-2-2s-1-C2-2.fit
$ rename "-2.fit" ".fit" ./*
rename: invalid option -- '2'
Try 'rename --help' for more information.
$ rename -V
rename from util-linux 2.37.2
$ ls ./
ZVul-1-2s-0-C1-2.fit ZVul-1-2s-2-C1-2.fit ZVul-2-2s-1-C2-2.fit
它把我的连字符作为一个选项。我能做什么?
我已经从here 尝试过rename -n 's/-(?=\d)//' *.xxx,但是不行,看来这是不支持 Perl regs 的 C++ 版本。
for i in *; do mv "$i" "`echo $i | sed "s/\(.*\)-2/\1/"`"; done
这行得通。但是rename 应该更简单。
【问题讨论】:
-
rename -- "-2.fit" ".fit" ./*