vimer linux kernel 爱好者

awk命令简介

2016-04-05

awk 确实强大, 请参考这篇文章 here

摘要

wk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk 命令格式和选项

awk [options] ‘script’ var=value file(s)

awk [options] -f scriptfile var=value file(s)

options:

-F fs 指定输入分隔符,fs可以是字符串或者正则表达式
-v var=value 将外部变量赋给awk
-f 从脚本读取awk命令

模式和操作

awk脚本由模式和操作组成

awk指定输出列

转载这里

awk '{print $0}' file    #打印所有列
awk '{print $1}' file  #打印第一列
awk '{print $1, $3}' file   #打印第一和第三列
cat file | awk '{print $3, $1}'   #打印第三列和第一列,注意先后顺序。
cat file | awk '{print $3, $NF}' #打印第三列和最后一列
awk -F ":" '{print $1, $3}'  #以“:”为分隔符分割列,然后打印第一列和第三列

$0表示所有列

-F:指定分隔符

$(NF)表示最后一列,$(NF-1)表示倒数第二列,以此类推。

如果我想打印N列之后的所有列,该怎么办?

解决方法是,把前N列都赋值为空,然后打印所有列。

awk '{for(i=1;i<=N;i++){$i=""}; print $0}' file

逐行匹配文本

https://opengers.github.io/linux/awk-format-print/


上一篇 javascript小结

下一篇 hash简介

Comments

Content