码迷,mamicode.com
首页 > 其他好文 > 详细

sed和awk之awk篇

时间:2017-08-02 23:39:14      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:数据   正则表达   ini   基本   部分   tin   inpu   incr   nbsp   

(原创文章,谢绝转载~)

awk是处理文本的另一利器,也是对文本逐行处理。awk的基本syntax是:

awk  ‘pattern {action}  ‘    inputfile
#examples 
awk ‘/regex/ { print $0 }‘   inputfile

在awk中用 $1,$2,$3.... 表示每行的第1,2,3....列,而 $0 表示整行数据

另有内置变量,借助awk的这些内置变量,可以非常方便的处理文本:

NF ,列数(Number of Fileds),进而 $NF 为最后一列。NR, 到目前读到的行数。

BEGIN,match首行前,END,match末行后,

FS,列分隔符,默认以空格或tab分隔;OFS,输出的分隔符

ORS,行separator,默认为\n

awk的pattern部分,可以是多种表达式:逻辑判断式、单独正则表达式、expression ~ /regex/、expression !~ /regex/, 范围(闭区间):expr1,expr2  , 等

action可以写长的程序:

control-flow的语法和c一样,支持break和continue:

if() {}else {}
while() {
       statements
}
 for(init;expr;increment) {}

数组:arr[n],支持自定义函数

function name(parameters){
   statments
   return expression
}
#examples
{print max($1,$2)}
function max(a,b){
return a>b?a:b
}

sed和awk再配合正则灵活运用,可以处理绝大部分文本数据的需求。

sed和awk之awk篇

标签:数据   正则表达   ini   基本   部分   tin   inpu   incr   nbsp   

原文地址:http://www.cnblogs.com/randomstring/p/7277024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!