**
這段時間多虧大家的幫助,利用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...