awk工具

awk:

awk -F ':' '{print $1}' 文件名字   =把第一段打印出來, $1 表示第一段,1能夠根據需求修改,若是想打印所有出來那麼 $1 更改成 $0 便可。正則表達式

不指定分隔符那麼會默認空格或者空白字符本身分段打印。bash

awk 也能夠同時打印多段落中間加上 , 號便可。spa

指定去其餘符號分割段落,符號用雙引號引發來便可。test

直接匹配需求數據。awk

awk -F ' : '  '$1 ~ /oo/'  文件名字 =指定匹配第一段帶有oo的數據。    $1 ~ =第一段     一樣支持正則表達式匹配。im

awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txt   =匹配第一段和第三段帶有root的段,而後在匹配第一段和第三段帶有user的段。    (awk一樣能夠多個表達式一塊兒寫)數據

awk -F ':' '/root/user/ {print $0}' test.txt    匹配全部段落帶有root或者user的行。 (上面的那種寫法更加容易理解)img

awk -F ':' '$3==1000 {print $0}' test.txt   第三段等於0的有哪些。        ==  兩個等號才表示等於     一個等於號表示賦值文件

awk -F ':' '$3>=1000 {print $0}' test.txt  第三段大於等於1000的段落有哪些   字符

awk -F ':' '$7!="/sbin/nologin" {print $0}' test.txt   表示第七段不等於 /sbin/nologin 有哪些。  !$ = 0不等於的意思。

 

awk -F ':' '$3>"5" && $3<"7"' test.txt   $3大於5而且$3小於7 ,  &&=而且。

awk -F ':' '$3>1000 || $7=="/bin/bash"' test.txt    $3大於1000或者$7等於/bin/bash     ||=或者的意思

==(兩個等於號表示等於,一個等於號表示賦值)

0FS 指定print的分隔符,中間能夠寫需求條件,若是不寫條件那麼就是所有顯示。

awk -F ':' '{print NF":" $0}' test.txt  顯示每一行的段號,每一行一共有幾段。

awk -F ':' '{print NR":" $0}' test.txt      顯示行號。

NF    NR  一樣能夠用做判斷一個條件是否可行。

awk -F ':' '{(tot=tot+$3)}; END {print tot}' test.txt    求第三段全部的和

 

awk -F ':' '{if ($1=="root") {print $0}}'      if = 嵌套條件,和需求條件一塊兒寫

相關文章
相關標籤/搜索