【发布时间】:2016-03-02 19:03:10
【问题描述】:
我正在寻找一个工具/shell 命令来编辑多个文件。我的确切用例是递归搜索具有特定名称的配置文件并向其添加新的配置行。
改写:
我在几个目录中有一堆配置:
For ex:
/Users/myth/app1/config/a.cfg
/Users/myth/app1/config/b.cfg
/Users/myth/app2/config/a.cfg
/Users/myth/app2/config/b.cfg
/Users/myth/app3/config/a.cfg
/Users/myth/app3/config/b.cfg
/Users/myth/app4/config/a.cfg
/Users/myth/app4/config/b.cfg
我只需要在所有应用的 a.cfg 中插入一行配置。我可以使用find . -name "a.cfg" 找到所有配置。现在,我如何将它传递到 echo 或 tee 之类的东西,以便在所有 a.cfg 的最后一行附加一行配置?我不能为这些应用程序使用共享的 a.cfg,因为所有应用程序的 a.cfg 内容都不相同。但是我打算添加的这一行是一样的。
更新: 这就是我最终使用的:
for configFile in $(find /Users/myth -type f -name "a.cfg" | xargs grep -iL "new config")
do
echo "new config" >> $configFile
done
【问题讨论】:
-
请看mcve
-
对不起,这是我的第一篇文章。我改写了我的q。感谢您的链接。
标签: bash shell user-interface