一般工作中會遇到比較兩個文字檔案的不同,類似於第二天新增資料、或者修改資料統計。我查閱資料查到一下兩種方法。
說明 $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...