比较shell脚本和delta中的文件

时间:2016-11-22 19:33:38

标签: linux shell unix scripting file-comparison

我有1个文件名file1.txt

cat file1.txt

|    6|        10|
|    7|        20|
|    8|        41|
|   10|        40|
|   11|        40|
|   12|        50|
|   13|        70|
|   15|        80|

cat file2.txt:

|    6|        10|
|    7|        30|
|    8|        81|
|   10|        90|
|   11|        60|
|   12|         0|
|   13|        70|
|   15|        80|

我必须比较这两个文件和每列我以获取信息作为delta在两个文件中的值不应超过5,例如: 对于文件1:6 | 10,对于file2 6 | 10, 但是对于文件1和文件2中的下一个值7 | 20,它是7| 30

所以我的目标是找出这两个文件之间的区别,如果delta是更高的打印结果。

有人可以指导我。

1 个答案:

答案 0 :(得分:1)

我不完全明白你的意思是“更高”,但这是一个很好的起点

join file1.txt file2.txt  -j 2 -t "|"  | sed -e 's/|//g' | awk '{print $1,$2,$3,$2-$3}'

6 10 10 0
7 20 30 -10
8 41 81 -40
10 40 90 -50
11 40 60 -20
12 50 0 50
13 70 70 0
15 80 80 0

基本上,我使用key作为第一列合并了2个文件,然后使用awk在最后进行一些处理。请告诉我们您对最终数据的要求,以便我们尽力提供帮助。