向多个文件添加新行文本

时间:2016-03-02 19:03:10

标签: bash shell user-interface

我正在寻找一个工具/ 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

1 个答案:

答案 0 :(得分:0)

echo >> `find /start/directory -name "a.cfg"`

Echo应该添加一个新行,添加到find命令列出的路径列表中。 Backtick首先确定命令的“正确”部分。