awk -F ':' '{print $1}' 文件名字 =把第一段打印出来, $1 表示第一段,1可以根据需求修改,如果想打印全部出来那么 $1 更改为 $0 即可。
不指定分隔符那么会默认空格或者空白字符自己分段打印。
awk 也可以同时打印多段落中间加上 , 号即可。
指定去其他符号分割段落,符号用双引号引起来即可。
直接匹配需求数据。
awk -F ' : ' '$1 ~ /oo/' 文件名字 =指定匹配第一段带有oo的数据。 $1 ~ =第一段 同样支持正则表达式匹配。
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的行。 (上面的那种写法更加容易理解)
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 = 嵌套条件,和需求条件一起写