2016-11-22 172 views
0

我有1文件名FILE1.TXT比較shell腳本和增量文件

貓FILE1.TXT

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

貓FILE2.TXT:

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

我要比較這些2文件,並且每個列中的I以兩個文件中的增量值獲取信息值不應超過5,例如: 對於文件1:6 | 10,對於文件2 6 | 10, ,但在下一個值7 | 20在文件1和文件2它是7| 30,

所以我的目標是找到這兩個文件之間的差異,如果delta是更高的打印結果。

有人可以指導我。

+0

使用'awk'。讀取第一個文件時,創建一個數組,其中的鍵爲列1,值爲列2.讀取第二個文件時,將第2列與數組中的值進行比較,並報告增量是否過高。 – Barmar

回答

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 

基本上,我使用合併鍵作爲第一列中的2個文件,然後在做一些處理以awk結尾。讓我們知道你想要什麼與最終數據,所以我們可以嘗試幫助。

+0

非常感謝,它給出了錯誤:無法讀取「1」:執行時沒有這樣的變量 「join file1.txt file2.txt -j 2 -t」|「| g'| awk'{print $ 1,$ 2- $ 3}'「 (文件」./temp2「第2行) –

+0

其中加入 /usr/bin/join –

+0

什麼是:join file1.txt file2.txt -j 2 -t「|」給你? – NinjaGaiden