awk學習筆記

awk的工做流程:
將文件的一行讀到內存,而後按分隔符將該行進行分段,其默認的分隔符是空格和TAB。
spa


經常使用格式1:
awk /pattern/ {command1;command2.....}  file內存


用法1 指定分隔符 用-F'分隔符'
awk -F: '{print $1}' /etc/passwd工作流


用法2 指定匹配位置用$n ~
awk -F: '$5 ~ /root/ {print $2}' /etc/passwdawk


經常使用格式2:
awk 'BEGIN{command}/pattern/{command1;command2....}'


用法3 用BEGIN{command}來指定分隔符(FS爲AWK內置變量,表示分隔符)
awk 'BEGIN{FS=":"}$5 ~ /deamon/ {print $2}' /etc/passwd


用法4 用OFS變量設置輸出分隔符(默認爲空格)
awk 'BEGIN{FS=":";OFS="--"}$5 ~ /daemon/ {print $1,$2}' passwd.log

用法5 NF變量示例(NF表示每行的字段數)
awk 'BEGIN{FS=":"} {print NF}' passwd.log
或者awk -F: '{print NF}' passwd.log變量


用法6 NR變量(處理行在原文件中的行號)
awk '/^adm/{print NR}' passwd.log file


用法7 自定義變量
awk 'BEGIN{FS=":";i=0}/sbin/{i++}END{print i}' passwd.log 引用


解釋:
  先定義一個變量i=0,查找匹配sbin的行,若有一行則i+1,全部行查找匹配完畢後執行print aa,實現統計匹配sbin的行數。
注意:
  引用變量不須要加$,在AWK中,只有引用$1,$2,$3...的時候才須要用$
command

相關文章
相關標籤/搜索