比较unix shell脚本中的2个文本文件
我有以下格式的2个文本文件比较unix shell脚本中的2个文本文件,shell,unix,diff,Shell,Unix,Diff,我有以下格式的2个文本文件 field1 : test1 field2 : test2 field3 : test3 field4 : test4 并将文件2作为:-- 我试图比较文件,如果所有内容都匹配,则输出为“所有记录匹配”,如果不匹配,则输出为“字段名的数据不匹配” 我试图通过忽略空白来使用dif
field1 : test1
field2 : test2
field3 : test3
field4 : test4
并将文件2作为:--
我试图比较文件,如果所有内容都匹配,则输出为“所有记录匹配”,如果不匹配,则输出为“字段名的数据不匹配”
我试图通过忽略空白来使用diff进行基本匹配,但没有实现
diff -byw 1.txt 2.txt
有人能帮我做同样的事吗
注意。由于第二个文件中每行的开头都有空格,所以您的数据不匹配。使用sed删除空间
sed -i 's/^ *//' 2.txt
现在使用diff-b进行比较,结果会很好。由于第二个文件中每行的开头都有空格,所以存在不匹配。使用sed删除空间
sed -i 's/^ *//' 2.txt
现在使用diff-b进行比较,它会工作得很好。在shell中,您可以使用
$?
检查上一个命令的输出状态<代码>$?如果上一个命令成功,退出状态为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
在shell中,可以使用
$?
检查上一个命令的输出状态<代码>$?如果上一个命令成功,退出状态为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
“它没有发生”的确切含义是什么?diff的输出是什么?你试过-b吗?是的,我试过-b。它将所有行显示为不匹配-忽略选项卡扩展。“它没有发生”的确切含义是什么?diff的输出是什么?你试过-b吗?是的,我试过-b。它将所有行显示为不匹配-忽略选项卡扩展。谢谢:)。。成功了。你能告诉我如何根据精确匹配打印成功或失败吗谢谢:)。。成功了。你能告诉我如何根据精确匹配打印成功或失败吗