zsh 在其他 shell 中的“echo SomeText >> **/filename”

jof*_*fel 4 shell find xargs replace files

我需要用文本填充具有特定文件名(递归)的所有文件。在 zsh 中,这可以通过

echo SomeText > **/TheFileName
Run Code Online (Sandbox Code Playgroud)

我搜索 sh 兼容和/或 tcsh shell 的通用解决方案。有没有比以下命令更短/更简单的方法?

find . -name "TheFileName" -print0 | xargs -0 sed -n -i -e '1c\nSomeText'
Run Code Online (Sandbox Code Playgroud)

Sté*_*las 6

find . -name TheFileName -type f -exec sh -c 'for i do
     echo SomeText > "$i"; done' sh {} +
Run Code Online (Sandbox Code Playgroud)

  • @lgeorget,是的,这是一个错字,感谢您的编辑。正如 mikeserv 所说,第二个 `sh` 用于内联脚本的 $0(例如用于错误消息)。 (2认同)