正则表达式:awk

时间:2021-11-12 15:40:10
[root@localhost ~]# awk -F ':' '{print $1}' 1.txt                       # 以冒号为分割符,打印出第一段
[root@localhost
~]# awk -F ':' '{print $1,$5}' 1.txt # 以冒号为分割符,打印出第一段和第五段
[root@localhost
~]# awk -F ':' 'OFS="-" {print $1,$5}' 1.txt # 以冒号为分割符,打印出第一段和第五段,并用'-'连接第一段和第五段
[root@localhost
~]# awk '/root/' 1.txt # 匹配带有'root'的行
[root@localhost
~]# awk '$1~/root/' 1.txt # 匹配第一段中带有'root'的行
[root@localhost
~]# awk -F ':' '$1=="root"' 1.txt # 匹配第一段是'root'的行
[root@localhost
~]# awk -F ':' '$3>=500' 1.txt # 匹配第三段大于等于500的行,其他符号还有 > < >= <= !=
[root@localhost
~]# awk -F ':' '$3<$4' 1.txt # 匹配第三段小于第四段的行
[root@localhost
~]# awk -F ':' '$3=$4' 1.txt # 这里表示赋值,即把第四段的值赋给第三段
[root@localhost
~]# awk -F ':' 'NR<10' 1.txt # NR 表示行,这里表示匹配行数小于 10 的行,即匹配 1-10 行
[root@localhost
~]# awk -F ':' '{if (NF==7) print $1}' 1.txt # NF 表示段的数量,这里 NF==7 表示匹配有 7 段的行
[root@localhost
~]# awk -F ':' '{(sum=sum+$3)}; END {print sum}' 1.txt # 求第三段的和,sum=sum+$3 表示循环相加第三段,END {print sum} 表示循环结束后打印 sum 的值
# $NR : 如果是第一行则 $NR==1 ,如果是第二行则 $NR==2 ,以此类推
# $NF :如果是第一段则 $NF==1 ,如果是第二段则 $NF==2 ,以此类推,$NF 则表示最后一段