使用shell比較兩個文字的差異

2021-09-24 01:14:59 字數 553 閱讀 1584

一般工作中會遇到比較兩個文字檔案的不同,類似於第二天新增資料、或者修改資料統計。我查閱資料查到一下兩種方法。

說明  $1 $2 為要比較的兩個文字檔案  此處使用引數代替

1  grep -f -v -f $1 $2 |sort |uniq

-f《範本檔案》或--file

=《範本檔案》   指定範本檔案,其內容含有乙個或多個範本樣式,讓grep查詢符合範本條件的檔案內容,格式為每列乙個範本樣式。

-f或--fixed-regexp   將範本樣式視為固定字串的列表。

-v或--revert-match   反轉查詢。

使用此命令可以實現上述功能,檔案大小或者數量不大時,沒有問題,但是當檔案過大,就像我線上處理的幾g的檔案就將32g的記憶體吃的滿滿的,所以使用該指令碼時注意記憶體監控。

2  cat $1 $2 | sort | uniq -d >temp.txt

cat $2 temp.txt | sort | uniq -u > $3

該指令碼思路是先求出兩個文字的交集,然後用乙個檔案去除掉交集部分,剩下的部分也就是兩個文字差異化的部分。

比較兩個檔案的差集

比較兩個檔案的差集,並匯出檔案到difference.txt中 1.已存在要比較的兩個檔案,分別為a.txt和b.txt,要找出兩檔案的差集 屬於a.txt但不屬於b.txt 介面3 2.最終輸出結果並匯入difference.txt檔案 我是利用set包 另外也可以通過map實現 實現如下 比較兩...

Shell比較兩個日期的大小

在shell中我們可以利用date命令比較兩個日期的大小,方法是先把日期轉換成時間戳格式,再進行比較。date 的 s可以將日期轉換成時間戳格式,看下面的例子 bin bash date1 2008 4 09 12 00 00 date2 2008 4 10 15 00 00 t1 date d d...

Shell程式設計 比較兩個日期的大小

在shell中我們可以利用date命令比較兩個日期的大小,方法是先把日期轉換成時間戳格式,再進行比較。date 的 s可以將日期轉換成時間戳格式,看下面的例子 bin bash date1 2008 4 09 12 00 00 date2 2008 4 10 15 00 00 date3 aug 1...