Awk行处理命令

2024-06-12 11:58:36来源:西游留学网作者:乏味 阅读量:12111

使用方法基本上是使用awk ' { pattern action } { filenames } pattern来表示awk在数据中寻找的内容。

操作是找到匹配内容时执行的一系列命令。

Awk行处理命令

大括号{ }不需要总是出现在程序中,但用于根据特定模式对一组指令进行分组。

pattern是用斜线括起来的正则表达式。

例如:

awk-f ':'/^ [ ] * release.* $/{ print $0} ' Apache-maven-3.3.9/readme.txt分隔符为常规awk-f ' [:] {

awk-f ' [:] ' { if=20nr=30 } print $1' ' $2' ' $3' ' Apache-maven-3.3.9/readme.txt begin和END模块通常

但是,在许多编程情况下,您可能需要在awk开始处理输入文件中的文本之前执行初始化代码。

在这种情况下,可以在awk中定义BEGIN块。

awk 'BEGIN {count=0; print '[start] user count is ',count} {count=count 1; 在print $0} end { print ' [ end ] user count is ',count } ' Apache-maven-3.3.9/readme.txt { }中支持和使用多条语句; awk 'BEGIN {count=0; print '[start] user count is ',count} {count=count 1; print $0} end { print ' [ end ] user count is ',count } ' Apache-maven-3.3.9/readme.txt可以直接使用变量。 默认值初始化为0,count不初始化,但默认值为0

awk '{count; 打印$ 0; } END{print 'user count is ',count } ' Apache-maven-3.3.9/readme.txt数组分类统计统计每行是否按以空格分隔的单词数无序:

即使awk ' { arr [ NR ]=nf } end { for ( indin arr ) print ind,arr [ ind ] } ' Apache-maven-3.3.9/readme.txt带有编号

awk'{arr[NR]=nf}end{for(ind=0; ind统计键行分别出现多少次: awk '/maven/{ arr [ $0] } end { for ( indin arr ) print ind,arr [ ind ] } Apache-maven-3.3.}

数组长度length函数length(arr )使用$0和进行模式匹配awk'$0)/maven/{arr[$0]}end(for ) indinarr ) print ind,arr

awk '$0! ~/maven/{ arr [ $0] } end { for ( indin arr ) print ind, arr [ ind ] }'Apache-maven-3.3.9/readme.txtifelseawk ' { if ( length 80 ( print $0) } ' Apache-maven-3.3

{if($0! ~ /matchme/) {print $1 $3 $4}}例如:

awk'{if($1==1)打印' a '; elseif($1=='available ' ) (打印' b ); else print ' c ' } ' Apache-maven-3.3.9/readme.txt字符串的传输时间now=mktime(t(1) ( t )2) ) ) t )3) ) t ) t )4)

打印' wrong rate:' wrong [ NR ]/[ NR-bg1 ]打印'ncount:' count ' qgap:' sum delta/count ' allwrongrate:' aage END { print sum }' file文件大小ls-l *.txt|awk ' { sum=$6} end { printsum } '文件的行awk ' length 80 ' Apache '

可以在$NF中获取最后一列

相关文章

热门文章

12118