查找文件并递归地将文本附加到它们

Int*_*... 2 bash find

我一直在寻找这个问题的答案:如何使用 find append text to all hits?我最初的方法类似于,
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 文件。

PSk*_*cik 6

-exec每个参数只是一个外壳:

find . -type f -name "*.py" -exec sh -c 'cat somecode.txt >> "$1"' -- {} \;
Run Code Online (Sandbox Code Playgroud)

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

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

find . -type f -name "*.py" -exec sh -c '< somecode.txt tee -a "$@"' -- {} +
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

6001 次

最近记录:

4 年,10 月 前