您好,登錄后才能下訂單哦!
今天小編給大家分享一下awk命令如何使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
Awk支持不同類型的模式,包括正則表達式、關系表達式、范圍和特殊表達式模式。
在下面的例子中,將創建一個名為“ teams.txt”的文件,文件內容如下:
[root@localhost ~]# cat teams.txtBucks Milwaukee 60 22 0.732 Raptors Toronto 58 24 0.707 76ers Philadelphia 51 31 0.622 Celtics Boston 49 33 0.598 Pacers Indiana 48 34 0.585
Awk的正則表達式模式用斜線(//)包含起來,例如:要顯示包含“0.5”的每條記錄,可以運行以下命令:
[root@localhost ~]# awk '/0.5/ {print $0}' teams.txtCeltics Boston 49 33 0.598 Pacers Indiana 48 34 0.585
要顯示包含“0.5”的每條記錄的第一個和第二個字段:
[root@localhost ~]# awk '/0.5/ {print $1,$2}' teams.txtCeltics Boston Pacers Indiana
顯示一個或者多個數字開頭的記錄,并打印第一列:
[root@localhost ~]# awk '/^[0-9]/ {print $1}' teams.txt76ers
關系表達式模式通常用于匹配特定字段或變量的內容。 常用的關系運算符有:
~
:包含!~
:不包含>
:大于:小于
>=
:大于等于:小于等于
=
:等于!=
:不等于使用~
“包含”比較運算符。例如,顯示第二個字段中包含“ia”字符的每條記錄:
[root@localhost ~]# awk '$2 ~ /ia/ {print $0}' teams.txt76ers Philadelphia 51 31 0.622 Pacers Indiana 48 34 0.585
若要匹配不包含給定字符的記錄,可以使用!~
不包含操作符。例如,顯示第二個字段中不包含“ia”字符的每條記錄:
[root@localhost ~]# awk '$2 !~ /ia/ {print $0}' teams.txtBucks Milwaukee 60 22 0.732 Raptors Toronto 58 24 0.707 Celtics Boston 49 33 0.598
使用!=
“不等于”操作符
使用>=
“大于等于”操作符,顯示第四個字段大于等于30的記錄:
[root@localhost ~]# awk '$4 >= 30 {print $0}' teams.txt76ers Philadelphia 51 31 0.622 Celtics Boston 49 33 0.598 Pacers Indiana 48 34 0.585
范圍模式由逗號分隔的兩組字符組成,從與第一個字符串匹配的記錄開始,直到與第二個字符串的記錄匹配為止的所有記錄。
例如,顯示從“Raptors”到 “Celtics”在內的記錄,:
[root@localhost ~]# awk '/Raptors/,/Celtics/ {print $0}' teams.txtRaptors Toronto 58 24 0.707 76ers Philadelphia 51 31 0.622 Celtics Boston 49 33 0.598
范圍模式也可以使用關系表達式,例如,顯示第四個字段等于31到第四個字段等于34 的記錄:
[root@localhost ~]# awk '$4 == 31 , $4 == 34 {print $0}' teams.txt76ers Philadelphia 51 31 0.622 Celtics Boston 49 33 0.598 Pacers Indiana 48 34 0.585
Awk包括以下特殊模式。
BEGIN
:在處理記錄之前執行此操作。END
:用于在處理記錄之后執行此操作。BEGIN模式通常用于設置變量,END模式用于處理統計的數據。例如,下面將顯示“Start Processing.”,然后顯示第三個字段,最后顯示”End Processing.”:
[root@localhost ~]# awk 'BEGIN {print "Start Processing."};{print $3};END {print "End Processing."}' teams.txtStart Processing. 60 58 51 49 48 End Processing.
Awk有許多內置變量,允許控制程序的處理方式。下面是一些常見的內置變量:
NF
:記錄中的字段數NR
:當前記錄的編號FILENAME
:當前正在處理的輸入文件名稱FS
:字段分隔符RS
:記錄分隔符OFS
:輸出字段分隔符ORS
:輸出記錄分隔符下面是一個顯示如何打印文件名和行數的示例:
[root@localhost ~]# awk 'END {print "File" , FILENAME , "contains" , NR , "lines."}' teams.txtFile teams.txt contains 5 lines.
以上就是“awk命令如何使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。