麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務(wù)器 > Linux服務(wù)器 > 正文

LINUX中詳解AWK內(nèi)建變量FS,NF,NR,RT,RS,ORS,OFS

2024-09-05 23:04:20
字體:
供稿:網(wǎng)友

看了網(wǎng)上好多關(guān)于AWK內(nèi)建變量的文章,這里加上個(gè)人的理解和記憶,可以讓大家掌握這些變量的基本用法。

FS 指定字段un列分隔符(Font Space)

[~/AWK_learning]$ echo "111|222|333" | awk '{print $1}'111|222|333[~/AWK_learning]$ echo "111|222|333" | awk 'BEGIN{FS="|"}{print $1}'111

OFS 指定輸出字段列分隔符(Output Font space)

[~/AWK_learning]$ echo "111 222 333" |awk 'BEGIN{OFS="|";}{print $1,$2,$3}'111|222|333

RS指定行分隔符 默認(rèn)分隔符為/n(Row Space)

[~/AWK_learning]$ echo "111 222|333 444|555 666" | awk 'BEGIN{RS="|"}{print $0}'111 222333 444555 666

ORS指定輸出行分隔符

[~/AWK_learning]$ awk 'BEGIN{ORS="|";}{print $0;}' test.txt111 222|333 444|555 666

RT 代指分隔符

[~/AWK_learning]$ echo "111 222|333 444|555 666" | awk 'BEGIN{RS="|"}{print $0,RT}'111 222 |333 444 |555 666 |

NF 每行字段總數(shù)(Number of Font)

[~/AWK_learning]$ cat test.txt111 222333 444555 666[~/AWK_learning]$ awk '{print NF}' test.txt222[~/AWK_learning]$ awk '{print $NF}' test.txt222444666

NR 當(dāng)前行數(shù)(Number of Row)

[~/AWK_learning]$ cat test.txt111 222333 444555 666 777[~/AWK_learning]$ awk '{print NR}' test.txt123[~/AWK_learning]$ awk '{print $NR}' test.txt111444777

下面我們?cè)趤砜聪?,在?nèi)建變量執(zhí)行中的相關(guān)問題:

NR表示從awk開始執(zhí)行后,按照記錄分隔符讀取的數(shù)據(jù)次數(shù),默認(rèn)的記錄分隔符為換行符,因此默認(rèn)的就是讀取的數(shù)據(jù)行數(shù),NR可以理解為Number of Record的縮寫。

在awk處理多個(gè)輸入文件的時(shí)候,在處理完第一個(gè)文件后,NR并不會(huì)從1開始,而是繼續(xù)累加,因此就出現(xiàn)了FNR,每當(dāng)處理一個(gè)新文件的時(shí)候,F(xiàn)NR就從1開始計(jì)數(shù),F(xiàn)NR可以理解為File Number of Record。

  NF表示目前的記錄被分割的字段的數(shù)目,NF可以理解為Number of Field。

下面以示例程序來進(jìn)行說明,首先準(zhǔn)備兩個(gè)輸入文件class1和class2,記錄了兩個(gè)班級(jí)的成績信息,內(nèi)容分別如下所示:

CodingAnts@ubuntu:~/awk$ cat class1zhaoyun 85 87guanyu 87 88liubei 90 86CodingAnts@ubuntu:~/awk$ cat class2caocao 92 87 90guojia 99 96 92

現(xiàn)在要查看兩個(gè)班級(jí)的所有成績信息,并在每條信息前加上行號(hào),則可以使用下面的awk指令;

CodingAnts@ubuntu:~/awk$ awk '{print NR,$0}' class1 class21 zhaoyun 85 872 guanyu 87 883 liubei 90 864 caocao 92 87 905 guojia 99 96 92

這里的行號(hào)就是通過NR來實(shí)現(xiàn)的,awk每讀取一條記錄,NR的值便加一。如果要求每個(gè)班級(jí)的行號(hào)從頭開始變化,則需要使用FNR來實(shí)現(xiàn),如下:

CodingAnts@ubuntu:~/awk$ awk '{print FNR,$0}' class1 class21 zhaoyun 85 872 guanyu 87 883 liubei 90 861 caocao 92 87 902 guojia 99 96 92

 

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 一级黄色影片在线观看 | av影片在线观看 | 日韩大片在线永久观看视频网站免费 | 日本在线视频免费观看 | 久草视频在线看 | 中文字幕一区2区 | 久草最新网址 | 看免费的毛片 | 一区二区久久 | wwwxxx免费视频| 国产精品刺激对白麻豆99 | 黄色a级片视频 | 亚洲天堂午夜 | 无码专区aaaaaa免费视频 | 免费看日韩片 | 欧美成年私人网站 | 羞羞视频免费观看网站 | 免费黄色小网站 | 手机av在线电影 | 国产日韩亚洲 | 噜噜噜躁狠狠躁狠狠精品视频 | 午夜视频久久 | 日韩美香港a一级毛片免费 日韩激情 | 久草最新在线 | 欧美亚洲国产一区二区三区 | 老子午夜影院 | 日本在线免费观看 | 日韩精品久久久 | 免费国产a| 国产午夜精品一区二区三区免费 | 曰韩毛片 | 亚洲婷婷日日综合婷婷噜噜噜 | 亚洲第一综合色 | 91综合在线观看 | 欧美黑大粗硬毛片视频 | 国产在线精品一区二区三区不卡 | 国产1区2区3区中文字幕 | 国产91一区 | 亚洲成人免费电影 | 国产午夜三级一区二区三桃花影视 | 线观看免费完整aaa 一二区成人影院电影网 |