使用awk比较unix中两个制表符分隔文件

时间:2017-03-07 06:41:45

标签: shell unix

我已经在unix上编写了这段代码,但我面临的问题如下所述。

  

我的代码是:

paste 1.txt   2.txt|
awk ' { FS = "\t " } ; NR == 1 { n = NF/2 }
              {for(i=1;i<=n;i++)
                 if($i!=$(i+n))
                   {c = c s i; s = "," }
               if(c)
                 {print "Line No. " NR-1 " COLUMN NO " c;
                  c = "" ; s = "" } } '
  

预期产出:

Line No. 2 COLUMN NO 2,3
Line No. 4 COLUMN NO 1,2,3,4
Line No. 6 COLUMN NO 2,3,4,5
Line No. 7 COLUMN NO 1,2,3,4,5
  

正在生成的输出:

Line No. 2 COLUMN NO 2,3
Line No. 4 COLUMN NO 1,2,3,4
Line No. 6 COLUMN NO 2,3,4,5
Line No. 7 COLUMN NO 1,2,3,4

下面指定的文件是空格分隔的。为了更好地理解它,我已经这样格式化了。

  

File1中:

ID_ID   First_name  Last_name Address                      Contact_Number
ID1     John        Rock      32, Park Lake, California    2222200000
ID2     Tommy       Hill      5322 Otter Lane Middleberge  3333300000
ID3     Leonardo    Test      Half-Way Pond, Georgetown    4444400000
ID8     Rhyan       Bigsh     6762,33 Ave N,St. Petersburg 5555500000
ID50    Steve       Goldberg  6762,33 Ave N,St. Petersburg 6666600000
ID60    Steve       Goldberg                               6666600000
  

文件2:

ID_ID   First_name  Last_name   Address                      Contact_Number
ID1     John        Rock        32, Park Lake, California    2222200000
ID2     Tommy1      Hill1       5322 Otter Lane Middleberge  3333300000
ID3     Leonardo    Test        Half-Way Pond, Georgetown    4444400000
ID80    Sylvester   Stallone                                 5555500000
ID50    Steve       Goldberg    6762,33 Ave N,St. Petersburg 6666600000
ID60    Mark        Waugh       St. Petersburg               7777700000
ID70    John        Smith                                    8888800000

0 个答案:

没有答案