shell實戰訓練營Day5
awk 命令
-F指定分段符 ,若不指定分隔符預設以空格空白為分隔符
awk -F ':' '{print $1,$3}' file 列印第一段,第三段
awk -F ':' '{print $0}' file 列印全段
awk '/word/' file 列印包含word的行
awk -F':' '{print $1"#"$3"#"$5}' file 指定用#分隔第1.3.5段
awk -F':' '$1~/word/' file 匹配第一段包含word的行
awk -F':' '$1~/ab+/' file 支援正則表示式
也支援多個表示式
awk -F':' '/root/ {print $1,$3} /test/{print $2,$4}' file 匹配root行列印第一第三段,匹配test行列印第二第四段
awk -F':' '$3==0 {print $1}' file 若第三段等於0,則列印第一段
awk -F':' '$3=="0" {print $1}' file 數字加雙引號按照ASCII碼計算
awk -F':' '$3>=0 {print $1}' file 若第三段大於等於0,則列印第一段
awk -F':' '$3!=0 {print $1}' file 若第三段不等於0,則列印第一段
awk -F':' '$3!="/sbin/nologin" {print $0}' file 若第三段不為/sbin/nologin,則列印第一段
awk -F':' '$3<$4 {print $1}' file
awk -F':' '$3>2&& $3<5 {print $1}' file
awk -F':' '$3>2||$4==0 {print $1}' file
awk -F':' '{OFS="#"} {if ($3>10) {print $3,$5,$7}}' file -F指定分段前分隔符,OFS指定分段後間隔符為# 輸出為$3#$#5#$7
awk -F':' 'NR<10' file 列印前10行 NR表示行數
awk -F':' '{print NR}' file 列印各行行號
awk -F':' '{print NF}' file 列印各行段數
awk -F':' 'NR<10&&$1~/word/' file 列印前10行中第一段包含word的行
awk -F':' $3="word" file 將第三段的賦值為word
awk -F':' '{tot=tot+$3};END{priint tot}' file 將檔案中第三段累加求和
awk -F':' '{if ($1=="word") {print $0}}' file 若檔案第一段是word,則打印出來