zoukankan      html  css  js  c++  java
  • awk处理之案例五:awk匹配字段2包含字段1的文本

    编译环境

       本系列文章所提供的算法均在以下环境下编译通过。

    【脚本编译环境】Federa 8,linux 2.6.35.6-45.fc14.i686
    【处理器】 Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz
    【内存】 2025272 kB

    前言

        awk是脚本中出色的文本处理工具。源码好像也是用C语言写的。本系列会针对不同的案例,用awk来解决我们所要的问题。 为什么会用awk呢?我们当然可以使用C语言或者java语言来对文本 做处理,但每次都要编译会令人发疯的。修改起来也麻烦,正所谓杀鸡焉用牛刀。 而脚本的灵活便捷使得工作变得更加轻松容易。在shell脚本编程中,awk堪称瑞士军刀绝不为过。

        本系列文章均系笔者所写,难免有一些错误或者纰漏,如果小伙伴们有好的建议或者更好的算法,请不吝赐教。

    正文

    【场景】

       现在有两个文本a.txt,里面包含的内容如下所示。
    以----为分隔符,如果后面完全含有前面的字符,把这一行提取出来

       a.txt文本内容如下:

    zhangming----zhangming34
    lixiang----lixiang20
    weiwei----notfind
    zhangwei----azhangwei87
    lina----aaalina53
    lijun----alibjun

       提取完之后,c.txt文本内容如下:

    zhangming----zhangming34
    lixiang----lixiang20
    zhangwei----azhangwei87
    lina----aaalina53

    【代码】

    {
       FS = "-+"
       if( $2 ~ $1 )
       {
          print
       }
    }

    【解释】

    FS是输入分隔符,一定要用双引号。默认为" "。
    $2~$1意思是第二个字段要匹配第一个字段,则输出。

    作者

       出处:http://www.cnblogs.com/gina

       本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    第07组 Beta冲刺(2/5)
    第07组 Beta冲刺(1/5)
    第07组 Alpha事后诸葛亮
    第07组 Alpha冲刺(5/6)
    第07组 Alpha冲刺(6/6)
    软工实践个人总结
    第01组 Beta版本演示
    第01组 Beta冲刺(5/5)
    第01组 Beta冲刺(4/5)
    第01组 Beta冲刺(3/5)
  • 原文地址:https://www.cnblogs.com/gina/p/3248210.html
Copyright © 2011-2022 走看看