查找文件并递归地将文本附加到其中

查找文件并递归地将文本附加到其中

我一直在寻找这个问题的答案一段时间:如何使用查找附加文本到所有命中?我最初的方法类似于,
sudo find / -type f -name "*.py" -exec cat somecode.txt >> {} \;
尽管所做的只是创建一个文件名,{}其中填充了 somecode.txt 的内容,每次点击都会重复一个文件名。然后我尝试运行该命令,尽管
sudo find / -type f -name "*.py" -exec echo somecode.txt >> {} \;
它具有相同的效果,只是这次充满了重复一次或每次点击的{}字符串。somecode.txt有没有其他方法可以实现这一点,或者我只是错过了一些基本的东西?
编辑:
我的预期目标是将 的内容somecode.txt附加到系统中的每个 python 文件中。

答案1

-exec每个参数只有一个 shell:

find . -type f -name "*.py" -exec sh -c 'cat somecode.txt >> "$1"' -- {} \;

sudo(从没有或在其他地方开始/可能是一个好主意)。

如果你想提高效率,你可能想尝试以下方法:

find . -type f -name "*.py" -exec sh -c '< somecode.txt tee -a "$@"' -- {} +

相关内容