国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - LINUX中詳解AWK內建變量FS,NF,NR,RT,RS,ORS,OFS

LINUX中詳解AWK內建變量FS,NF,NR,RT,RS,ORS,OFS

2022-02-21 17:47cengineering Linux

很多朋友沒搞告白AWK內建變量FS,NF,NR,RT,RS,ORS,OFS的方法和原理,小編給大家總結了詳細的內容,一起來學習下思路。

看了網上好多關于AWK內建變量的文章,這里加上個人的理解和記憶,可以讓大家掌握這些變量的基本用法。

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

?
1
2
3
4
[~/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)

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

RS指定行分隔符 默認分隔符為\n(Row Space)

?
1
2
3
4
[~/AWK_learning]$ echo "111 222|333 444|555 666" | awk 'BEGIN{RS="|"}{print $0}'
111 222
333 444
555 666

ORS指定輸出行分隔符

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

RT 代指分隔符

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
[~/AWK_learning]$ cat test.txt
111 222
333 444
555 666
[~/AWK_learning]$ awk '{print NF}' test.txt
2
2
2
[~/AWK_learning]$ awk '{print $NF}' test.txt
222
444
666

NR 當前行數(Number of Row)

?
1
2
3
4
5
6
7
8
9
10
11
12
[~/AWK_learning]$ cat test.txt
111 222
333 444
555 666 777
[~/AWK_learning]$ awk '{print NR}' test.txt
1
2
3
[~/AWK_learning]$ awk '{print $NR}' test.txt
111
444
777

下面我們在來看下,在內建變量執行中的相關問題:

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

在awk處理多個輸入文件的時候,在處理完第一個文件后,NR并不會從1開始,而是繼續累加,因此就出現了FNR,每當處理一個新文件的時候,FNR就從1開始計數,FNR可以理解為File Number of Record。

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

下面以示例程序來進行說明,首先準備兩個輸入文件class1和class2,記錄了兩個班級的成績信息,內容分別如下所示:

?
1
2
3
4
5
6
7
CodingAnts@ubuntu:~/awk$ cat class1
zhaoyun 85 87
guanyu 87 88
liubei 90 86
CodingAnts@ubuntu:~/awk$ cat class2
caocao 92 87 90
guojia 99 96 92

現在要查看兩個班級的所有成績信息,并在每條信息前加上行號,則可以使用下面的awk指令;

?
1
2
3
4
5
6
CodingAnts@ubuntu:~/awk$ awk '{print NR,$0}' class1 class2
1 zhaoyun 85 87
2 guanyu 87 88
3 liubei 90 86
4 caocao 92 87 90
5 guojia 99 96 92

這里的行號就是通過NR來實現的,awk每讀取一條記錄,NR的值便加一。如果要求每個班級的行號從頭開始變化,則需要使用FNR來實現,如下:

?
1
2
3
4
5
6
CodingAnts@ubuntu:~/awk$ awk '{print FNR,$0}' class1 class2
1 zhaoyun 85 87
2 guanyu 87 88
3 liubei 90 86
1 caocao 92 87 90
2 guojia 99 96 92

原文鏈接:http://blog.csdn.net/cengineering/article/details/78529292

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品国产在 | 国产精品成人在线观看 | a√毛片| 91在线| www.国产一区 | 美女主播精品视频一二三四 | 黄色在线免费 | 日韩av在线不卡 | 欧美高清com | 亚洲精品日本 | 91国内在线观看 | 日日嗨av一区二区三区四区 | 狠狠艹夜夜艹 | 精品免费一区 | 毛片a级毛片免费 | 成av在线 | 国产精品美女久久久久久久久久久 | 国产精品第一页在线 | 国产精品一区二区三区免费 | 成人精品一区二区 | 国产黄色av| av在线电影观看 | 国产福利在线观看 | 中文字幕在线观看日韩 | 精品在线一区二区 | av中文在线 | 欧美一区久久 | 亚洲精品三级 | 久草免费福利 | 亚洲第一色 | 成人精品一区二区三区中文字幕 | 日韩国产精品一区二区三区 | 亚洲视频中文字幕 | 欧美日韩免费一区二区三区 | av在线免费播放 | 亚洲美女二区 | 免费视频一区二区 | 日日色视频 | 在线日本视频 | 综合伊人久久 | 国产a视频 |