awk 逐行合併檔案

2021-06-18 20:33:39 字數 990 閱讀 2888

**

這段時間多虧大家的幫助,利用awk命令解決了很多問題,在此也總結自己實際運用到的問題,方便其他童鞋一起學習shell。

如果兩個檔案行數相同,只是希望逐行合併

方法一

$ paste -d "\t" file_1 file_2

複製**

方法二

$ awk 'nr==fnrnr>fnr' file_1 file_2

複製**

方法三

$ awk '' file_1

複製**

兩個檔案之間單純求記錄交集

方法一(需要先去除重覆記錄,兩個檔案的格式必須相同,尤其要注意每行結尾的空格,換行符)

$ sort file_1 file_2 |uniq -d

複製**

方法二(file_1大於file_2的記錄數,不適合記錄過多的檔案,也需要提前去重複)

$ grep -w -f file_1 file_2|sort|uniq

複製**

兩種方法可以一起用,從而檢查結果是否準確

方法三(如果需要匹配超過兩個的檔案,就修改「==2」的數值為檔案個數)

$ awk '!b[$1,argind]++' file_1 file_2

複製**

累加第二列的數值

方法一(無條件累加)

$ awk 'end'  file

複製**

方法二(若第三列的內容相同,則累加對應記錄的第二列數值)

awk 'end' file

複製**

方法三(對其他列的內容進行限制篩選以後累加第二列的數值)

$ awk '$4=="abc" && $5>=100 && $6<=500end' file

複製**

方法四(若第三列,第四列內容相同,則累加第二列的數值,並將結果公升序輸出)

$ awk 'end' file|sort

複製**

awk逐行拼接兩個檔案的內容

最近給資料庫導資料時,遇到需要把兩個資料檔案逐行拼接為乙個檔案,想起好 awk來了,之前只請它幫忙搞基過從資料行中提取某幾列資料,但還沒試過從多個檔案中合併資料的搞法。但我相信這位好 肯定還有很多搞基的花樣,那就借這次機會,釣一下它的魚 具體是這樣的,有兩資料檔案file1,file2 file1內...

awk 合併多個檔案的方法

現在有兩個沒有關聯的檔案a.list,b.list cat a.list abc abc def def ghi ghi cat b.list 1 2 3 現在希望將a.list b.list兩個文合併如下 abc abc 1 def def 2 ghi ghi 3 命令 awk nr fnrnr ...

使用awk合併檔案及指令碼解析

昨天在csnd上看到有使用awk合併檔案的乙個問題,正好這兩天有點時間就簡單整理了其執行過程的分析.a.txt的檔案內容為 20114042028 liuyh 90 20114042045 liub 100 20114042013 liubx 100b.txt的檔案內容為 20114042013 y...