實用awk一行流01_2021-06-16

廢話沒有,直接上實用代碼付材,當你著急忙慌的時候朦拖,希望它能幫到你

測試數據:WorldCupGroup.data(9行X6列)

cat WorldCupGroup.data

分組第一檔第二檔第三檔第四檔第五檔

A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

1.首先我們來獲取文件的總行數(方法有很多,當然你也可以使用wc -l WorldCupGroup.data厌衔;也可以實用less -SN WorldCupGroup.data璧帝,輸入G,查看行數富寿;更可以使用vim編輯器打開然后輸入:set nu睬隶,接著輸入G跳到最后一行,來查看行數)作喘,但是我們用awk實現就是下面的代碼:

awk 'END{print FILENAME"的行數為:"NR}' WorldCupGroup.data

WorldCupGroup.data的行數為:9

2.接著我們打印第5行內容(方法也有很多理疙,可以用sed)

awk 'NR==5' WorldCupGroup.data

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

當然如果你知道第五行有關鍵而且特殊的詞,例如‘D組’

awk '/D組/ {print $0}' WorldCupGroup.data或者

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

awk '$1~/D組/ {print $0}' WorldCupGroup.data

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

3.我們接著打印每個輸入行的最后一個字段

awk '{ print $NF }' WorldCupGroup.data

第五檔

關島*

尼泊爾

柬埔寨*

新加坡

孟加拉國*

蒙古*

印度尼西亞

斯里蘭卡*

4.然后泞坦,我們打印打印最后一行的最后一個字段

awk '{ field = $NF } END { print field }' WorldCupGroup.data

斯里蘭卡*


5.打印字段數小于等于6的行

awk 'NF<=6' WorldCupGroup.data

分組第一檔第二檔第三檔第四檔第五檔

A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

6.打印最后一個字段數大于等于3的行

awk '$NF >=3' WorldCupGroup.data

分組第一檔第二檔第三檔第四檔第五檔

A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

7.統(tǒng)計所有輸入行的字段數總和

awk '{ nf = nf + NF } END { print nf }' WorldCupGroup.data

54

8.打印包含‘組’的所有行數

awk '/組/ { nlines = nlines + 1 } END { print nlines }' WorldCupGroup.data

9

9.打印具有最大值的第一個字段, 以及包含它的行(字符串也是可以比較大小的窖贤,根據ASCII編碼的前后順序,具體見ASCII碼 - 基本ASCII碼和擴展ASCII碼,最全的ASCII碼對照表 (asciim.cn)

awk '$1 > max { max = $1; maxline = $0 } ?

END { print max, maxline }' WorldCupGroup.data

分組分組第一檔第二檔第三檔第四檔第五檔


10.打印字段數不為0的行

awk 'NF != 0' WorldCupGroup.data

分組第一檔第二檔第三檔第四檔第五檔

A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*


11.打印長度超過 60 個字符的行

awk 'length($0) > 60' WorldCupGroup.data

D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*


12.獲取每行的字符數

awk '{nch=length($0);print nch"\t"$0}' WorldCupGroup.data | column -t

56 分組 第一檔 第二檔 第三檔 第四檔 第五檔

52 A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

57 B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

52 C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

69 D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

52 E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

61 F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

58 G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

52 H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

13.在每一行的前面加上它的字段數

awk '{ print NF, $0 }' WorldCupGroup.data

6 分組 第一檔 第二檔 第三檔 第四檔 第五檔

6 A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

6 B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

6 C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

6 D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

6 E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

6 F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

6 G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

6 H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

14. 在每一行的前面加上行數、字段數赃梧、字符數

awk '{ nch=length($0);print NR"\t"NF"\t"nch"\t"$0 }' WorldCupGroup.data

1 6 56 分組 第一檔 第二檔 第三檔 第四檔 第五檔

2 6 52 A組 中國 敘利亞 菲律賓 馬爾代夫 關島*

3 6 57 B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

4 6 52 C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*

5 6 69 D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

6 6 52 E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

7 6 61 F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

8 6 58 G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

9 6 52 H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

15.打印每一行的第 1 與第 2 個字段, 但順序相反

awk '{ print $2"\t"$1 }' WorldCupGroup.data

第一檔分組

中國A組

澳大利亞B組

伊朗C組

沙特阿拉伯D組

卡塔爾E組

日本F組

阿聯酋G組

韓國H組

16.我們繼續(xù)交換每一行的第 1 與第 2 個字段, 并打印該行

awk '{ temp = $1; $1 = $2; $2 = temp; print }' WorldCupGroup.data | column -t

第一檔分組第二檔第三檔第四檔第五檔

中國A組 敘利亞 菲律賓 馬爾代夫 關島*

澳大利亞B組 約旦 臺灣地區(qū) 科威特 尼泊爾

伊朗C組 伊拉克 巴林 中國香港 柬埔寨*

沙特阿拉伯D組 烏茲別克斯坦 巴勒斯坦 也門 新加坡

卡塔爾E組 阿曼 印度 阿富汗 孟加拉國*

日本F組 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

阿聯酋G組 越南 泰國 馬來西亞* 印度尼西亞

韓國H組 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

17.將每一行的第一個字段用行號代替

awk '{ $1=NR; print }' WorldCupGroup.data | column -t

1 第一檔 第二檔 第三檔 第四檔 第五檔

2 中國 敘利亞 菲律賓 馬爾代夫 關島*

3 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾

4 伊朗 伊拉克 巴林 中國香港 柬埔寨*

5 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡

6 卡塔爾 阿曼 印度 阿富汗 孟加拉國*

7 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

8 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞

9 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

18.打印刪除了第 6個字段后的行

awk '{ $2 = ""; print }' WorldCupGroup.data | column -t

分組第二檔第三檔第四檔第五檔

A組 敘利亞 菲律賓 馬爾代夫 關島*

B組 約旦 臺灣地區(qū) 科威特 尼泊爾

C組 伊拉克 巴林 中國香港 柬埔寨*

D組 烏茲別克斯坦 巴勒斯坦 也門 新加坡

E組 阿曼 印度 阿富汗 孟加拉國*

F組 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*

G組 越南 泰國 馬來西亞* 印度尼西亞

H組 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*

19.將每一行的字段按逆序打印

awk '{ for (i = NF; i > 0; i = i - 1) printf("%s ", $i);printf("\n") }' WorldCupGroup.data | column -t

第五檔第四檔第三檔第二檔第一檔分組

關島* 馬爾代夫 菲律賓 敘利亞 中國 A組

尼泊爾科威特臺灣地區(qū)約旦澳大利亞B組

柬埔寨* 中國香港 巴林 伊拉克 伊朗 C組

新加坡也門巴勒斯坦烏茲別克斯坦沙特阿拉伯D組

孟加拉國* 阿富汗 印度 阿曼 卡塔爾 E組

蒙古* 緬甸 塔吉克斯坦 吉爾吉斯斯坦 日本 F組

印度尼西亞馬來西亞* 泰國 越南 阿聯酋 G組

斯里蘭卡* 土庫曼 朝鮮 黎巴嫩 韓國 H組

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末滤蝠,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子授嘀,更是在濱河造成了極大的恐慌物咳,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹄皱,死亡現場離奇詭異览闰,居然都是意外死亡,警方通過查閱死者的電腦和手機巷折,發(fā)現死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門压鉴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锻拘,你說我怎么就攤上這事油吭。” “怎么了署拟?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵婉宰,是天一觀的道長。 經常有香客問我推穷,道長心包,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任缨恒,我火速辦了婚禮谴咸,結果婚禮上,老公的妹妹穿的比我還像新娘骗露。我一直安慰自己,他們只是感情好血巍,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布萧锉。 她就那樣靜靜地躺著,像睡著了一般述寡。 火紅的嫁衣襯著肌膚如雪柿隙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天鲫凶,我揣著相機與錄音禀崖,去河邊找鬼螟炫。 笑死波附,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播掸屡,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼封寞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仅财?” 一聲冷哼從身側響起狈究,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盏求,沒想到半個月后抖锥,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡碎罚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年宁改,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魂莫。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡还蹲,死狀恐怖,靈堂內的尸體忽然破棺而出耙考,到底是詐尸還是另有隱情谜喊,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布倦始,位于F島的核電站斗遏,受9級特大地震影響,放射性物質發(fā)生泄漏鞋邑。R本人自食惡果不足惜诵次,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枚碗。 院中可真熱鬧逾一,春花似錦、人聲如沸肮雨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怨规。三九已至陌宿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間波丰,已是汗流浹背壳坪。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工钉稍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惕它,地道東北人硬猫。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像岂昭,于是被迫代替她去往敵國和親午乓。 傳聞我的和親對象是個殘疾皇子喧半,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容