比较两个文本文档中的数字,如果差异太大,请打印出来



我得到了两个具有以下结构的文本文件。一个数字,然后是一些空格和文件的路径。

--- File 1 ---
1198464 ./aaa/file_A
6345 ./bbb/file_B
24345 ./bbb/file_C
2345212 ./ccc/file_D
92315 ./ddd/file_E
852217 ./ddd/file_F
--- File 2 ---
1198464 ./aaa/file_A
1234 ./bbb/file_B
24340 ./bbb/file_C
452217 ./ddd/file_F

现在我想比较这两个文件,只打印出两个文件中存在的文件名,以及其中的数字比";8〃;。在上述情况下,应打印出以下内容:

file_B
file_F

文件_ C将不会被打印出来,因为24345和24340之间的差小于8。

awk -F[/.] 'NR==FNR { map[$NF]=$1 } NR!=FNR { gsub(" ","",$1);if ((map[$NF] -$1)>8) { print $NF }  }' File1 File2

将字段分隔符设置为/或。首先处理File1(NR==FNR(创建一个数组(映射(,最后一个字段(NF-文件名(作为索引,大小作为值。然后对于第二个文件(NR!=FNR(,用gsub删除任何空格,然后当大小差大于8时,打印最后一个字段(文件名(

最新更新