欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年11月14日 14:45:42   投稿:laozhang  
很多朋友沒搞告白AWK內(nèi)建變量FS,NF,NR,RT,RS,ORS,OFS的方法和原理,小編給大家總結(jié)了詳細(xì)的內(nèi)容,一起來學(xué)習(xí)下思路。

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

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 222
333 444
555 666

ORS指定輸出行分隔符

[~/AWK_learning]$ awk 'BEGIN{ORS="|";}{print $0;}' test.txt
111 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.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 當(dāng)前行數(shù)(Number of Row)

[~/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

下面我們在來看下,在內(nèi)建變量執(zhí)行中的相關(guān)問題:

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

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

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

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

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

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

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來實(shí)現(xiàn)的,awk每讀取一條記錄,NR的值便加一。如果要求每個班級的行號從頭開始變化,則需要使用FNR來實(shí)現(xiàn),如下:

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

相關(guān)文章

  • CentOS 6 啟動流程詳細(xì)介紹

    CentOS 6 啟動流程詳細(xì)介紹

    這篇文章主要介紹了CentOS 6 啟動流程詳細(xì)介紹的相關(guān)資料,這里對centos 啟動進(jìn)行了分析,希望能幫助到大家理解centos 啟動流程,需要的朋友可以參考下
    2017-07-07
  • Ubuntu下安裝nvidia顯卡驅(qū)動(安裝方式簡單)

    Ubuntu下安裝nvidia顯卡驅(qū)動(安裝方式簡單)

    這篇文章主要介紹了Ubuntu下安裝nvidia顯卡驅(qū)動,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux查看系統(tǒng)文件打開數(shù)的方法小結(jié)

    Linux查看系統(tǒng)文件打開數(shù)的方法小結(jié)

    有許多情況下,我們需要查看一個進(jìn)程當(dāng)前打開了哪些文件,反過來我們也希望知道某一個文件正在被哪些進(jìn)程所讀寫,在Linux下有許多有用的工具可以幫我們完成這兩個工作,本文給大家介紹了Linux查看系統(tǒng)文件打開數(shù)的方法小結(jié),需要的朋友可以參考下
    2024-07-07
  • linux上搭建私有Git服務(wù)器的詳細(xì)教程

    linux上搭建私有Git服務(wù)器的詳細(xì)教程

    這篇文章主要介紹了linux上搭建私有Git服務(wù)器的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Linux centOS安裝JDK和Tomcat的教程

    Linux centOS安裝JDK和Tomcat的教程

    今天小編就為大家分享一篇關(guān)于Linux centOS安裝JDK和Tomcat的教程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Linux如何編譯和安裝boost庫

    Linux如何編譯和安裝boost庫

    這篇文章主要介紹了Linux如何編譯和安裝boost庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 在Linux配置自啟動jar包方式

    在Linux配置自啟動jar包方式

    這篇文章主要介紹了在Linux配置自啟動jar包方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Ubuntu下圖形化LAMP環(huán)境配置教程(linux)

    Ubuntu下圖形化LAMP環(huán)境配置教程(linux)

    這篇文章主要為大家詳細(xì)介紹了Ubuntu下圖形化LAMP環(huán)境配置,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 關(guān)于crontab定時任務(wù)命令解讀

    關(guān)于crontab定時任務(wù)命令解讀

    這篇文章主要介紹了關(guān)于crontab定時任務(wù)命令的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 深入理解Bash中的尖括號(適合初學(xué)者)

    深入理解Bash中的尖括號(適合初學(xué)者)

    這篇文章主要給大家介紹了關(guān)于Bash中尖括號的相關(guān)資料,本文非常適合初學(xué)者,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評論