- 論壇徽章:
- 0
|
我自己是這么理解的
命令是:
awk 'NR==FNR {a[substr($1,2,5)]=$2} NR>FNR && a[b=substr($1,1,4)] {print $0,a[b]}' 2.txt 1.txt
將命令分為兩個(gè)部分。
(1)先解析NR==FNR {a[substr($1,2,5)]=$2}
對(duì)于NR,讀取行數(shù)分別為1234(2.txt),5678(1.txt)
對(duì)于FNR,讀取行數(shù)分別為1234(2.txt),1234(1.txt)
因此NR==FNR的范圍就在2.txt文件里了,substr函數(shù)得出的是:
a[0011]=$2=11111
a[0012]=$2=22222
a[0013]=$2=33333
a[0014]=$2=44444
(2)再來(lái)看NR>FNR && a[b=substr($1,1,4)] {print $0,a[b]}這一部分
NR>FNR的范圍實(shí)在1.txt文件里,substr函數(shù)得出的是:
a[b=0011]
a[b=0012]
a[b=0013]
a[b=0014]
以上數(shù)組是在(1)中已經(jīng)賦值了
再print $0,a[b],此處的$0是范圍在1.txt里的
得出最后的結(jié)果
不知道我分析的過程對(duì)不對(duì),還希望大家來(lái)指正 |
|