awk下

时间:2022-10-01 15:58:28
###
# 两个字段相互去比较匹配
# awk -F ':' '$3<$4' inittab匹配第三段小于第4段的行
# $3<$4指定第三段小于第四段的行

awk下


# awk -F ':' '$3<$4 {print $1}' inittab匹配第三段小于第4段的行,只打印出第一段出来,
# $3<$4指定第三段小于第四段的行
# {print $1} 只打印出第一段
# $3==$4 第三段等于第四段的行

awk下


# 多个需求在一起使用
# awk -F ':' '$3>"5" && $3<"7" inittab 表示去匹配第三段大于五并小于七的行
# &&并且
# ||或者

awk下


# awk -F ':' '$3>"5" && $3<"7" {print $1}' inittab匹配第三段大于五并小于七的行,只打印第一段出来
# $3>"5" && $3<"7"表示小于五并且大于七
# {print $1} 指定只打印出第几段
# &&并且
# ||或者

awk下


# awk -F ':' '$3>1000 || $7 ~ /bash/' inittab匹配第三段大于1000的或者 第七段是bash的
# $7 ~ /bash/ 匹配第七段是bash的行
# &&并且
# ||或者

awk下


# awk -F ':' '{OFS="#"} $3>1000 || $7 ~ /bash/ {print $1,$3.$7}' inittab
# {OFS="#"}表示指定分隔符号,要写在最前面
# $7 ~ /bash/ 去匹配第七段只包含bash的 ,~表示包含~符号后面的字符去匹配的意思
# {print $1,$3.$7} 指定只打印出第几段
# &&并且
# ||或者

awk下


# awk -F ':' '{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}' inittab
# {OFS="#"}表示指定分隔符号,要写在最前面
# {if ($3>1000) {print $1,$2,$3,$4}}属于一体的,if判断用小括号括起来,再print,嵌套花括号

awk下


###
# 内置变量:
# OFS表示print的时候打印指定分隔符
# NR表示行
# NF表示段
# 例:
# awk -F ':' '{print NR":"$0}' inittab打印所有的行,并且会显示出行号

awk下


# awk -F ':' 'NR<=10' inittab 判断条件打印出小于等于10的行
# awk -F ':' 'NR<=10 && $1 ~ /root|sync/' inittab 判断条件打印出小于等于10的行并且第一段包含root或者sync的行
# &&和||可以一起用

awk下


# awk -F ':' '{print NF":"$0}' inittab打印所有的段,并且在最前面标注出每一行有几段

awk下


# awk -F ':' '{print $NR":"$NF}' inittab 表示打印出一行标注一段循环下去

awk下


# head -n 3 inittab |awk -F ':' '{OFS=":"} $1="root"'
# {OFS=":"} 表示指定分隔符号
# '$1="root"'表示给前三行第一段赋值

awk下


# awk -F ':' '{(tot=tot+$3)}; END {print tot}' inittab 求和第三段相加的数值

awk下