當前位置:編程學習大全網 - 編程語言 - linux awk命令詳解

linux awk命令詳解

awk是壹個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在對數據分析並生成報告時,顯得尤為強大。

簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。

awk有三個不同的版本:awk、nawk和gawk,未作特別說明,壹般指gawk,gawk是awk的GNU版本。

之所以叫awk是因為其取了三位創始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family

Name的首字符。

awk格式:

格式: sed -n '3p' sed.txt

找誰幹啥(條件動作)

awk格式

#取出/etc/passwd 第1行的第1列和第3列

awk -F: 'NR==1{print $1,$3}' /etc/passwd

awk 選項 '條件{動作}' /etc/passwd

條件: 哪壹行,過濾什麽內容

動作: print輸出與顯示 ,計算....

awk取行:與sed類似

案例01:取出sed.txt的第2行

[root@oldboy81-golden-lnb /oldboy]# cat sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt

102,zhangya,CTO

#awk '行號 等於 2' sed.txt

#NR awk內置變量

Number of Record 記錄號(行號)

案例02:取出sed.txt中包含oldboy或lidao的行

[root@oldboy81-golden-lnb /oldboy]# sed -rn '/oldboy|lidao/p' sed.txt

103,lidao007,COO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# awk '/oldboy|lidao/' sed.txt

103,lidao007,COO

110,lidao,COCO

案例03:取出文件第2行到第5行內容

#awk '行號大於等於2 並且 行號小於等於5' sed.txt

#方法01

awk 'NR>=2 && NR<=5' sed.txt #必會

&& 表示並且.

#方法02

sed -n '2,5p' sed.txt

#方法03 了解

awk 'NR==2,NR==5' sed.txt #從行號是2的行開始 到 行號是5的行結束( 了解)

案例04:取出文件第3行到最後壹行內容

[root@oldboy81-golden-lnb /oldboy]# awk 'NR >= 3' sed.txt

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# sed -n '3,$p' sed.txt

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

案例05:取出從包含oldboy的行到lidao的行

[root@oldboy81-golden-lnb /oldboy]# cat sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

root@oldboy81-golden-lnb /oldboy]# sed -n '/old/,/lidao/p' sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

[root@oldboy81-golden-lnb /oldboy]# awk '/old/ , /lidao/' sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

  • 上一篇:文字控走心的文案
  • 下一篇:學java有前途嗎?好不好就業?
  • copyright 2024編程學習大全網