1. 程式人生 > >Linux學習筆記(二十八)awk

Linux學習筆記(二十八)awk

awk

head -n2 test.txt|awk -F ‘:‘ ‘{print $1}‘ //文件的前兩行,以:分隔,打印第一段 head -n2 test.txt|awk -F ‘:‘ ‘{print $0}‘ //文件的前兩行,以:分隔,打印所有的內容($N就是第N段,0就是所有字段),輸出所有字段時可以省略-F awk -F ‘:‘ ‘{print $1"#"$2"#"$3"#"$4}‘ test.txt //以:分隔,取前四段,之間用#分隔 -F選項省略時,默認以空格或者空白字符為分隔符 awk -F ‘:‘ ‘{print $1,$2,$3,$4}‘ test.txt //以:分隔,輸出前四段 awk ‘/oo/‘ test.txt //輸出包含oo的行 awk -F ‘:‘ ‘$1 ~/oo/‘ test.txt //以:分隔,第一段包含oo的行 awk -F ‘:‘ ‘/root/ {print $1,$3} /test/ {print $2,$4}‘ test.txt //以:分隔,包含root的行輸出第1,3段,包含test的輸出第2,4段 awk -F ‘:‘ ‘$3=="0"‘ /etc/passwd //以:分隔,第三段是“0” 的行 awk -F ‘:‘ ‘$3>="500"‘ /etc/passwd //以:分隔,第三段大於字符500 的行 (數字加上雙引號就代表字符而非數字) awk -F ‘:‘ ‘$3>=500‘ /etc/passwd //以:分隔,第三段大於500 的行 awk -F ‘:‘ ‘$7!="/sbin/nologin"‘ /etc/passwd //以:分隔,第7段不等於/sbin/nologin 的行

技術分享圖片技術分享圖片技術分享圖片
技術分享圖片技術分享圖片技術分享圖片技術分享圖片

 awk -F ‘:‘ ‘$3<$4‘ /etc/passwd             //以:分隔,第3段小於第四段 的行
 awk -F ‘:‘ ‘$3>"5" && $3<"7"‘ /etc/passwd         //以:分隔,第3段大於字符5並且小於字符7 的行
 awk -F ‘:‘ ‘$3>1000 || $7=="/bin/bash"‘ /etc/passwd        //以:分隔,第3段=1000或者第七段=/bin/bash 的行
 head -5 /etc/passwd |awk -F ‘:‘ ‘{OFS="#"} {print $1,$3,$4}‘       //前5行以:分隔,取1,3,4段,以#分隔
 awk -F ‘:‘ ‘{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}‘ /etc/passwd      //將分隔符:替換為#,第三段大於1000,則輸出1,2,3,4段
  awk -F ‘:‘ ‘{OFS="#"}  $3>1000 {print $1,$2,$3,$4}}‘ /etc/passwd       //將分隔符:替換為#,第三段大於1000,則輸出1,2,3,4段
 head -n3 /etc/passwd | awk -F ‘:‘ ‘{print NF}‘        //前三行以:分隔,有幾段
 head -n3 /etc/passwd | awk -F ‘:‘ ‘{print NR}‘        //前三行以:分隔,有幾行(加行號)
 awk ‘NR>40‘ /etc/passwd               //取行號大於40 的
 awk -F ‘:‘ ‘NR<20 && $1 ~ /roo/‘ /etc/passwd      //以:分隔,前19行中第一段含有roo的
 head -n 3 /etc/passwd |awk -F ‘:‘ ‘$1="root"‘       //以:分隔,將第一段賦值root
 awk -F ‘:‘ ‘{(tot=tot+$3)}; END {print tot}‘ /etc/passwd        //以:分隔,各行第三段相加
 awk -F ‘:‘ ‘{if ($1=="root") {print $0}}‘ /etc/passwd          //以:分隔,如果第一段=root,就輸出所有段

技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片
技術分享圖片技術分享圖片

Linux學習筆記(二十八)awk