2016-03-02 111 views
-3

我正在查找一个工具/ shell命令来编辑多个文件。我的确切用例是递归搜索具有特定名称的配置文件,并向其添加新的配置行。将多行文本添加到多个文件中

重述:
我有几个迪尔斯一堆CONFIGS的:

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 
+0

请看看[mcve](http://stackoverflow.com/help/mcve) –

+0

对不起,这是我的第一篇文章。我已经改写了我的q。感谢您的链接。 – myth

回答

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

回声应该添加一个新行追加到由find命令列出的路径列表。反拨指令首先发生命令的“正确”部分。