我有超过 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