我一直在寻找这个问题的答案一段时间:如何使用查找附加文本到所有命中?我最初的方法类似于,
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 "$@"' -- {} +