标签:数据 正则表达 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再配合正则灵活运用,可以处理绝大部分文本数据的需求。
标签:数据 正则表达 ini 基本 部分 tin inpu incr nbsp
原文地址:http://www.cnblogs.com/randomstring/p/7277024.html