如何从多个文件名中删除数字前缀?

如何从多个文件名中删除数字前缀?

我有超过 2000 个文件,其名称如下

123-FILENAME_TEXT_M101K_20150929.CSV

其中123可以是任意三位数或四位数。这些文件都位于同一目录中。我想要一个删除前缀数字和破折号的脚本。 (即123-应从示例名称中删除前导)

我努力了mv **-FILENAME* FILENAME*rename不是一个可用的函数

答案1

你可以尝试这样的事情,它会删除第一个之前的所有内容-

for file in *-*.CSV
do
   newName="${file#*-}"
   mv -- "${file}" "${newName}"
done

答案2

我尝试过使用 sed、awk 和 find 的组合。经测试且工作正常

find . -type f -iname "*.CSV"| sed "s/^\.\///g"| sed -n '/^[0-9]\{4\}/p' | awk   -F "-" '{print "mv" " " $0 " " $2}'| sh

相关内容