Linux文本比較-diff&awk

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   使用   sp   strong   檔案   

最近為了完成工作,需要將兩個檔案A.old和A進行比較,然後將A中新增加的部分儲存到A中,其他部分刪除。經過尋找相關資料,發現有兩種比較好的方法。

1. 使用diff命令

diff old.file new.file | grep "^> " | sed ‘s/> //g‘ > temp.file #只存在於後面new.file檔案中的內容儲存到temp.file中mv temp.file new.file # 將temp.file中的內容覆蓋new.file
sed ‘s/^> //g‘ # s表示進行替換,意思是將以"> "開頭的符號全部替換為""sed ‘s/要被替換的字串/新的字串/g‘ 

 

2. 使用awk命令

awk ‘NR==FNR{a[$0]}NR>FNR{if(!($1 in a)) print $0}‘ old.file new.file > temp.filemv temp.file new.file
awk內建變數
變數名稱 代表意義
$0 代表一整行的資料
NF 每一行($0)擁有的欄位總數
NR 目前awk所處理的是"第幾行"資料
FS 目前的分割字元,預設是空格鍵

NR和FNR的區別

NR:目前記錄數

FNR:當前檔案的記錄數,其範圍在一個檔案內,重新開啟檔案,FNR重新從1開始。

兩者的區別主要體現在awk操作檔案數大於1時。

 

參考:http://bbs.chinaunix.net/thread-1155924-1-1.html

        http://bbs.chinaunix.net/thread-2309494-1-1.html

Linux文本比較-diff&awk

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.