-
2009-03-20
awk的一些命令 - [awk学习]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://wanping.blogbus.com/logs/36783956.html
这几天在字符串文本处理,用到了awk,感觉真的很不错,功能很强大,特别是在做大数据量的文本和字符串处理的时候,效率很高,比用sed和vim中的替换命令方便很多,下面举几个例子说说吧:
awk -F "&" '$2 !~/catId/' total >cat.txt
----处理totle文件中以“&”符号分割,并且第2列以catId开头的字段的行内容,保存在cat.txt文件中
awk -F "&" '{if (NF!=3) print $0 }' key 〉key.txt
----处理key文件中,以“&”符号分割,并且总列数不等于3的字段的行内容,结果保存在key.txt文件中。
Awk –F “|” ‘{print $4}’ tcmlog >tcmquery.txt
------处理tcmlog文件中,以“|”符号分割,并且是第四列的行内容,保存在tcmquery.txt文件中。
awk -F[\&=] '{printf("%s&trtitle=%s\n",$0,$16)}' tcmquery.txt
----处理tcmquery.txt,以“&”和“=”符号来拆分整行($0代表整行),把16列的内容赋给trtitle=。
这里需要说明下,是如何用“&”和“=”来拆分的,举个例子,如下:
a=1&b=2 拆分成 a 1 b 2 四列
如test.txt文件中存在下面的字符串为:
A=1&b=2&c=3&d=4&e=5
我需要增加一列f,把c=3的值赋f,那么就可以用awk完成:
Awk –F [\&=] ‘{printf(“%s&f=%s\n”,$0,$4)}’ test.txt
收藏到:Del.icio.us







