我有一个运行的脚本,提醒我两个文件的更改。我需要修改它,因为三条线一直在变化 - 所以它并不完全准确。我已经删除了更改的行,但它有点问题(更改的行在该处移动,有时在第1-3行,有时在第8-11行)。
我让它运行if / then / else语句:
if diff file1 file2 >/dev/null ; then dothis else dothis
根据我的上述说明不起作用。因此,如果不同行的总数大于3,我需要它来执行if then else语句。
单向 - 非常不优雅 - 是我有一个diff命令输出到第三个文件,然后是第三个文件的行数
diff file1 file2 > file3
wc -l file3
file3返回
10 file3
这有点乱,但会起作用......但我不知道如何编写一个语句来查看file3并返回匹配,如果'10 file3'行以数字>开头10 ....
我相信有一个更简单的方法来做到这一点。不知道怎么样。一如既往地谢谢!
答案 0 :(得分:0)
如果我能正确理解你的问题,这对你有帮助吗?
if [ `diff --changed-group-format='%>' --unchanged-group-format='' \
file1 file2 | wc -l` -eq 3 ];
then
echo foo
else
echo bar
fi
这允许您测试更改行的确切数量,示例测试等于三。在你的情况下,你会使用-gt 3?
或者我是否错误地理解了这个问题?
哈努哈利