• 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

     


    历史上的今天:


    随机文章:

    今天犯错了 2008-11-18
    awk(10) 2008-09-08
    awk(9) 2008-09-08
    awk(7) 2008-09-08
    awk(4) 2008-09-08

    收藏到:Del.icio.us