awk基礎---回顧

報告生成工具,每一行的每個字段分別進行格式化,而後進行顯示

******************************

支持使用變量、條件判斷、循環、數組

awk-->new awk-->nawk

按行進行逐字段過濾處理並顯示

*************切割後*****************

$0表示整行

$1 $2...依次表示第一個第二個...字段

**************用法格式****************

awk [options] 'script' FILE...

awk [options] '/pattern/{action}' FILE...

action:print $1,$2,$3

模式:

地址定界:/pat1/,/pat2/

/pattern/ 

expression:表達式

> >= < <= == != ~

BEGIN:執行前操作

END:執行後的收尾工作

awk的常用四種分隔符

輸入:

行分隔符

字段分隔符

輸出:

行分隔符

字段分隔符

########

字段間可任意寫入字符

awk -F : '/^root/{print "User name:",$1,"\nShell:", $7}' passwd

########

! 模式取反

df -h | awk '!/^Filesystem/{print $1}' 

########

字段做條件判斷,表達式的使用

awk -F : '$3>=400{print $0}' passwd 

awk -F : '$7~/bash$/{print $0}' passwd 

########

BEGINEND

awk -F : 'BEGIN{print "User name\n-------------------"}$7~/bash$/{print $1}END{print "________________\n3 User"}' passwd 

########

FS OFS定義在BEGIN

awk 'BEGIN{FS=":"}$3>=400{print $1}' passwd 

awk 'BEGIN{FS=":";OFS="@"}$3>=400{print $1,$2}' passwd

*************內置變量*****************

NF:字段數 number of field

FS: field separator指定輸入分隔符,可在BEGIN中定義,指定時要使用"",默認爲空白

OFS:輸出時指定的分隔符,在BEGIN中定義,指定時要使用"",默認爲空白

**************練習****************

1.顯示GID小於500的組

awk -F : '$3<500{print $1}' /etc/group

awk 'BEGIN{FS=":"}$3<500{print $1}' /etc/group

2.顯示默認的shell爲nologin的用戶

awk -F : '$7~/nologin$/{print $1}' /etc/passwd

awk 'BEGIN{FS=":"}/nologin$/{print $1}' passwd 

3,顯示eth0網卡文件的配置信息,注意,只顯示等號後面的值

awk -F = '{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0

 awk 'BEGIN{FS="="}{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0

4.顯示/etc/sysctl.conf文件中定義的內核參數:只顯示名稱,

awk -F =' !/^#|^$/{print $1}'/etc/sysctl.conf

awk 'BEGIN{FS="="}!/^#|^$/{print $1}' /etc/sysctl.conf

5.顯示eth0網卡的ip地址,通過ifconfig命令結果進行過濾

ifconfig eth0 |awk '/inet addr/{print $2}' |awk -F : '{print $2}'



後續再加awk的高級部分

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章