【发布时间】:2012-08-22 01:40:14
【问题描述】:
我试图找到一种聪明的方法来确定传递给 sed 的文件是否已成功更改。
基本上,我想知道文件是否已更改,而无需查看文件修改日期。
我之所以需要这个是因为如果 sed 成功替换了一个模式,我需要做一些额外的事情。
我目前有:
grep -q $pattern $filename
if [ $? -eq 0 ]
then
sed -i s:$pattern:$new_pattern: $filename
# DO SOME OTHER STUFF HERE
else
# DO SOME OTHER STUFF HERE
fi
上面的代码有点贵,我希望能够在这里使用一些技巧。
【问题讨论】:
-
任何时候你试图做一些“聪明”的事情,你可能不应该这样做。
-
@WilliamPursell 因为世界是由愚蠢的发明创造的。
-
如何将更改写入新文件,然后区分原始文件和生成的文件?顺便说一句,如果 grep 之前找到了模式,sed 不应该总是替换它吗?
-
SOME OTHER STUFF也可以和sed一起完成吗? -
sed的退出代码不反映是否找到任何匹配项。
标签: linux bash shell ubuntu sed