如何通过添加文件内的单词来重命名多个文件?

如何通过添加文件内的单词来重命名多个文件?

我有文件:

文件名:report_2020-10-13-17-11.txt
包含:
...
本报告由=John 编写
...
文件名:report_2020-10-13-17-12.txt
包含:
...
本报告由=Doe 编写
...
文件名:report_2020-10-13-17-13.txt
包含:
...
本报告由=Ton 编写
...
文件名:report_2020-10-14-07-25.txt
包含:
...
本报告由=Bolt 编写
...


我想将文件重命名为

John_report_2020-10-13-17-11.txt
Doe_report_2020-10-13-17-12.txt
Ton_report_2020-10-13-17-13.txt
Bolt_报告_2020-10-14-07-25.txt

谢谢


答案1

未经测试

for file in report_*.txt; do
    owner=$( grep -Po '(?<=this report was prepared by=)\w+' "$file" )
    echo mv "$file" "${owner}_$file"
done

如果结果看起来不错,请删除“echo”

相关内容