awk
awk -F ':' '{print $1}' test.txt
-F ':'指定分隔符: {print $1} 打印第一列 (不会更改文本内容)
awk '{print $0}' test.txt
print $0 打印所有的列
不指定,默认空格为分割符
awk -F ':' '{print $1,$3,$4}' test.txt 打印多段
打印1,3,4 列
awk -F ':' '{print $1“#”$3“#”$4}' test.txt
以#分割
awk '/oo/' test.txt 匹配功能
打印所有有oo的行
awk -F ':' '$1~/oo/' test.txt
只打印第一段有oo的行
awk -F ':' '/root/ {print $1,$3} /user/ {print $1,$3,$4}' test.txt
一次输出多个
awk -F ':' '$3=="0" ' test.txt 需要==表示等于0 $3=0 表示赋值 输出第三段为0的行
awk -F ':' '$3>="1000" ' test.txt
awk -F ':' '$3>=1000 ' test.txt
加"" 表示是字符ASCII去计算,不是数字去比较
awk -F ':' '$7!="/sbin/nologin" ' test.txt
第7段不等于/sbin/nologin
awk -F ':' '$3<$4' test.txt
awk -F ':' '$3==$4' test.txt
awk -F ':' '$3>"5"'&&$3<"7" test.txt
第三段大于5且小于7
awk -F ':' '$3>1000 || $7=="/sbin/nologin"' test.txt
$3 > 1000 or $7 = "/sbin/nologin"
awk -F ':' '$3>1000 || $7 ~ /bash/' test.txt
$3 > 1000 or $7 包含bash
awk -F ':' '{OFS="#"} $3>1000 || $7 ~ /bash/ {print $1,$3,$7}' test.txt OFS指定print 以后用到的分隔符
awk -F ':' ‘{OFS="#"} {if($3>1000) {print $1,$2,$3,$3}}' test.txt
awk -F ':' '{print NR":"$0}' test.txt
显示行号
awk -F ':' '{print NF":"$0}' test.txt
显示有多少段
awk -F ':' 'NR<=10' test.txt
显示前十行
awk -F ':' 'NR<=10' && $1 ~ /root|sync/' test.txt
awk -F ':' '{print $NR":"$NF}' test.txt
head -n 3 test.txt |awk -F ':' '{OFS=":"} $1="root"' 赋值后分隔符消失,要用OFS定义
给$1赋值
awk -F ':' '{(tot=tot+$3)}; END {print tot}' test.txt
循环加$3的值,求第三段所有的和
awk -F ':' '{if($1=="root") {print $0}}}' test.txt