使用awk合並兩份文檔


如果使用awk分析兩份文檔,並且按照某一字段合並:

示例文件格式:

file1

王姑娘 腿長120cm 

a姑娘 腿長110cm

b姑娘 腿長100cm

file2

王姑娘  冰雪聰明

a姑娘 溫柔賢淑 

b姑娘 古靈精怪

使用awk分析兩份文本

 awk '{ if (NR==FNR) {arraya[$1]=$2} if (NR!=FNR) { arrayb[$1]=$2}}END{for (i in arraya) {print i,arraya[i],arrayb[i]}} ' file1 file2

NR,表示awk開始執行程序后所讀取的數據行數.
FNR,與NR功用類似,不同的是awk每打開一個新文件,FNR便從0重新累計.

判斷NR與FNR是否相等就可以判斷是否是兩份不同的文件

if (NR==FNR)
if (NR!=FNR) 


因為文件的第一列相等,所以我們分別將兩份文件的第一列元素取值做為數組的key
{arraya[$1]=$2} 

{ arrayb[$1]=$2}
然后遍歷數組的key,分別取出兩個value的值即可
END{for (i in arraya) {print i,arraya[i],arrayb[i]}
結果:

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM