用Bollger记录技术之路的点滴...

关注高性能linux网络编程,NoSQL, c/c++/java ~~~ weibo @语_行 http://weibo.com/201281062~~~ twitter @JerryVector https://twitter.com/JerryVector
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

AWK学习(一)

Posted on 2013-03-02 12:28  语行  阅读(209)  评论(0编辑  收藏  举报

AWK可以说是linux进行文本处理的一把利器,很多时候一行简单命令,便可以完成复杂的文本处理任务。

很多时候,我们在处理一些数据处理的需求的时候,可能会产生一些数据文件,接下来,可能就涉及到要对这些数据文件做一些处理;通常产生的数据文件可能会有特定的格式

例如:

text1,text2,text3.....  //以逗号为分隔符

text1 text2 text3.......//以空格为分隔符

等等这种类似的文件。

这时候,如果要查找某一列相同的所有的行,用一般的命令就很不方便处理了,不过用AWK就很方便了,

如,我们要查询第二列相同的行,每列以逗号来分割,可以这样:

awk -F[","] 'NR==FNR{a[$2]++}NR>FNR&&a[$2]>1{ print $0}' file file

NR: awk中的内置变量,表示当前已经读取的总记录数

FNR:awk内置变量,表示当前行所在文件中的行数

除此之后,我们还可以根据需要,查找其他分隔符分割的,其他列的一些数据处理。