文本分析工具awk简单示例,文本awk示例


先创建一个文件:vim hi

 

 取第2个字段和第3个字段:

awk '{print $2,$3}' hi     注意{}中的,逗号会在输出的时候转变为空格

 

加入字符说明:

 

 显示整行:

 

 

指定字段分隔符:-F

 

 内建变量:NF      NF:字段数量,  $NF代表最后一个字段

 

 NR:行数

 

 /regular expression/: 仅处理能够被此处的模式匹配到的行

 

取反:awk '!/^john/{print $2}' hi

 

上面的语句表示如果第三个字段大于等于500,则取第一和第三个字段

 

 判断最后一个字段是否为/bin/bash,如果是则打印第一和最后一个字段

 

 做模式匹配

 

cat hi

 做行范围匹配

 

取得行范围:

 

 if条件判断语句:判断第三个字段的值是否大于500

 

 字符替换:

echo "this is a test" | awk 'gsub("test","abd")'

 

cat hi

while循环:

 

NF代表当前行的字段数,length是个函数,取得$i这个字段的字符长度

 

 awk '/^tom/{i=1;while(i<=NF) {if(length($i)>=4){print $i,length($i)}; i++}}' hi

在while循环中又嵌套了if语句

 

上面的while语句也可以用for循环语句代替

awk '/tom/{for(i=1;i<=NF;i++) {print $i,length($i)}}' hi

 

相关内容