[英]Compare 2 text files unix shell script
我有2个以下格式的文本文件
field1 : test1
field2 : test2
field3 : test3
field4 : test4
和文件2为:-
field1 : test1
field2 : test2
field3 : test3
field4 : test4
我正在尝试比较文件,如果所有内容都匹配且输出不匹配,则输出为“匹配的所有记录”,然后“ 字段名称的数据不匹配”
我尝试使用diff通过忽略空格来进行基本匹配,但是这种情况没有发生。
diff -byw 1.txt 2.txt
有人可以帮我吗?
问候。
在外壳中,可以使用$?
检查上一条命令的输出状态。 $?
如果最后一个命令成功且退出状态为0,则保持0,否则为0。 你可以检查$?
值并相应地打印语句。 输入文件
cat 1.txt
field1 : test1
field2 : test2
field3 : test3
field4 : test4
cat 2.txt
field1 : test1
field2 : test2
field3 : test3
field4 : test4
下面的命令
> diff -bE 1.txt 2.txt
> if [ $? -eq 0 ];then echo SUCCESSFUL; else echo FAIL; fi
产量
SUCCESSFUL
如果文件数据不匹配[2.txt中的前导空格]
diff -bE 1.txt 2.txt
1c1
< field1 : test1
---
> field1 : test1
3c3
< field3 : test3
---
> field3 : test3
if [ $? -eq 0 ];then echo SUCCESSFUL; else echo FAIL; fi
输出
FAIL
您不匹配,因为第二个文件中每行的开头都有空格。 使用sed删除空间
sed -i 's/^ *//' 2.txt
现在使用diff -b进行比较就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.