谢谢大家的反馈。道歉,因为我是新编码和新的SO。以下是我目前运行的代码。
awk 'FNR==NR{a[$4,$5]=$0}{if(b=a[$4,$5]); print b, "PASS";next}else{if(b!=a[$4,$5]){print a, b, "FAIL";next}}'
如果相同,则在每一行旁边附加一个PASS,但如果该行中存在任何不一致,则会打印FAIL。
试图让自己更熟悉awk。使用FNR == NR我已经能够比较2个文件(逐行),然后在文件末尾打印PASS。但是,我实际上无法让它正确地使场景失败并且如果它们不匹配则打印FAIL。任何人都可以帮助noobie吗?
答案 0 :(得分:1)
以下是一些awk
脚本,可帮助您入门。
$ awk 'NR==FNR{a[NR]=$0;next}
{f=$0!=a[FNR]; delete a[FNR]}
f{c=FNR;exit}
END{c=c?c:(FNR+1);print f||(c in a)?"FAIL on line "c:"PASS"}'
额外的复杂性是由于文件可能有不同的长度。另请注意,现有工具(diff,comm,...)以非常紧凑的方式执行此操作。