如果使用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]}
結果:

