gpt4 book ai didi

linux - 如何检查sed是否更改了文件

转载 作者:IT王子 更新时间:2023-10-29 00:25:55 25 4
gpt4 key购买 nike

我正试图找到一种聪明的方法来确定传递给 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

上面的代码有点贵,我希望能够在这里使用一些 hack。

最佳答案

晚会有点晚了,但为了其他人的利益,我发现“w”标志正是我要找的东西。

sed -i "s/$pattern/$new_pattern/w changelog.txt" "$filename"
if [ -s changelog.txt ]; then
# CHANGES MADE, DO SOME STUFF HERE
else
# NO CHANGES MADE, DO SOME OTHER STUFF HERE
fi

changelog.txt 将在它自己的行中包含每个更改(即更改的文本)。如果没有更改,changelog.txt 将为零字节。

一个真正有用的 sed 资源(以及我在哪里找到此信息)是 http://www.grymoire.com/Unix/Sed.html .

关于linux - 如何检查sed是否更改了文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com