2016-03-02 90 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命令列出的路徑列表。反撥指令首先發生命令的「正確」部分。

相關問題