技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務(wù)器類 >

linux比較文件輸出不同的內(nèi)容

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-12-07 06:14┆點擊:

  linux比較文件輸出不同的內(nèi)容

  目前據(jù)我所了解的有如下幾種方法,來比較兩個文件的行,以輸出他們的不同之處:

  1) comm mission:

  comm [-123] file1 file2 [> sfile]

  NOTE: file1,file2 must be firstly sorted !

  -1/2/3 means: -1 ----- rid the only retained contents in file1

  -2 ----- rid the only retained contents in file2

  -3 ----- rid the communal lines in both two files

  正如,上面說的那樣,comm命令運用的前提是針對兩個sorted文件!

  該命令是對兩個已經(jīng)排好序的文件進行比較。其中file1和file2是已排序的文件。comm讀取這兩個文件,然后生成三列輸出:僅在file1中出現(xiàn)的行;僅在file2中出現(xiàn)的行;在兩個文件中都存在的行。如果文件名用“- ”,則表示從標準輸入讀取。

  選項1、2或3抑制相應(yīng)的列顯示。例如comm - 12就只顯示在兩個文件中都存在的行;comm - 23只顯示在第一個文件中出現(xiàn)而未在第二個文件中出現(xiàn)的行;comm - 123則什么也不顯示。

  2) grep mission:

  grep -v -f file1 file2

  /*注::此法在對比數(shù)字時候比較湊效果,文本對比不建議使用*/

  3) awk mission:

  awk '{print NR,$0}' file1 file2 |sort -k2|uniq -u -f 1|sort -k1|awk '{print $2}'

  或者:

  awk '{print $0}' file1 file2 |sort|uniq -u

  4) diff mission:

  diff [-opt] file1 file2