【问题标题】:Add new line of text to multiple files将新的文本行添加到多个文件
【发布时间】: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


【解决方案1】:
echo >> `find /start/directory -name "a.cfg"`

Echo 应该在 find 命令列出的路径列表中添加一个新行。反引号确保命令的“正确”部分首先发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多