我试图找到一种聪明的方法来确定传递给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
Run Code Online (Sandbox Code Playgroud)
上面的代码有点贵,我希望能在这里使用一些黑客.
sed 是否有一个类似于 的选项grep -q
,它根据是否实际找到字符串匹配而返回 1 或 0?
我问的原因是在某些情况下我使用sed
特定的方式,例如在给定行号之后查找第一个匹配项,或者设置捕获组并以这种方式获取字符串,所以我想看看是否有sed
内置的东西可以检查如果返回任何内容,因为我想将错误返回给用户,并在找不到匹配项时退出我的 bash 脚本