我想通过在文件名前面插入格式为“RXR1234567”(RXR+7 位数字)的数字(如果在文本中找到这样的数字(理想情况下只有一个))来批量重命名文件(*.txt),例如
letter_235.txt
该文件应该被称为
RXR1234567_letter_235.txt
可以从命令行 (grep、重命名) 完成此操作吗?文件位于各个子目录中。
我们将一如既往地感谢您的想法。
答案1
在根目录中尝试这个:
find -name '*.txt' -exec sh -c 'PREFIX=`grep -m 1 -oe "RXR[0-9]\{7\}" "$0"` && mv "$0" "${0%/*}/${PREFIX}_${0##*/}"' {} \;
笔记:如果文件包含多个与该模式匹配的内容,则将使用第一个。