【发布时间】:2011-09-04 22:19:08
【问题描述】:
我正在使用以下内容递归搜索目录以查找特定字符串并将其替换为另一个:
grep -rl oldstr path | xargs sed -i 's/oldstr/newstr/g'
这工作正常。唯一的问题是,如果字符串不存在,那么 sed 会失败,因为它没有得到任何参数。这对我来说是个问题,因为我使用 ANT 自动运行它并且构建失败,因为 sed 失败。
有没有办法让它在找不到字符串的情况下防故障?
我对我可以使用的单行简单解决方案感兴趣(不一定与 grep 或 sed 一起使用,而是使用此类常见的 unix 命令)。
【问题讨论】:
-
我想让它尽可能简单的原因是因为我的脚本连接到远程服务器并使用 SSH 运行这一行。如果我为此使用 shell 脚本,我必须先将 shell 脚本复制到服务器,然后在那里运行它。我试图避免它并保持简单。谢谢。
-
来自谷歌,我正在寻找问题中给出的确切字符串! (我没有遇到 OP 遇到的问题)