久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

AWK的NR和FNR詳解

 野崎君noZakiKu 2017-07-24

書(shū)上說(shuō):

NR,表示awk開(kāi)始執(zhí)行程序后所讀取的數(shù)據(jù)行數(shù).

FNR,與NR功用類似,不同的是awk每打開(kāi)一個(gè)新文件,FNR便從0重新累計(jì).

下面看兩個(gè)例子:

1,對(duì)于單個(gè)文件NR 和FNR 的 輸出結(jié)果一樣的 :

# awk '{print NR,$0}' file1
1 a b c d
2 a b d c
3 a c b d

#awk '{print FNR,$0}' file1
1 a b c d
2 a b d c
3 a c b d 

2,但是對(duì)于多個(gè)文件 :

# awk '{print NR,$0}' file1 file2
1 a b c d
2 a b d c
3 a c b d
4 aa bb cc dd
5 aa bb dd cc
6 aa cc bb dd

# awk '{print FNR,$0}' file1 file2
1 a b c d
2 a b d c
3 a c b d
1 aa bb cc dd
2 aa bb dd cc
3 aa cc bb dd

在看一個(gè)例子關(guān)于NR和FNR的典型應(yīng)用:

現(xiàn)在有兩個(gè)文件格式如下:

#cat account
張三|000001
李四|000002
#cat cdr
000001|10
000001|20
000002|30
000002|15

想要得到的結(jié)果是將用戶名,,賬號(hào)和金額在同一行打印出來(lái),如下:

張三|000001|10
張三|000001|20
李四|000002|30
李四|000002|15

執(zhí)行如下代碼

#awk -F \| 'NR==FNR{a[$2]=$0;next}{print a[$1]"|"$2}' account cdr

注釋:

由NR=FNR為真時(shí),判斷當(dāng)前讀入的是第一個(gè)文件account,然后使用{a[$2]=$0;next}循環(huán)將account文件的每行記錄都存入數(shù)組a,并使用$2第2個(gè)字段作為下標(biāo)引用.

由NR=FNR為假時(shí),判斷當(dāng)前讀入了第二個(gè)文件cdr,然后跳過(guò){a[$2]=$0;next},對(duì)第二個(gè)文件cdr的每一行都無(wú)條件執(zhí)行{print a[$1]"|"$2},此時(shí)變量$1為第二個(gè)文件的第一個(gè)字段,與讀入第一個(gè)文件時(shí),采用第一個(gè)文件第二個(gè)字段$2為數(shù)組下標(biāo)相同.因此可以在此使用a[$1]引用數(shù)組,。

linux

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多