zoukankan      html  css  js  c++  java
  • 3.4 小结

        如需从输入的数据文件中取出特定的文本行,主要的工具为 grep 程序。POSIX 采用三种不同 grep 变体:grep、egrep 与 fgrep 的功能,整合为单个版本,通过不同的选项,分别提供这三种行为模式。
     
        虽然可以直接查找字符串常数,但是正则表达式能提供一个功能更强大的方式,描述你要找的文本。大部分的字符在匹配时,表示的是自己本身,但又部分其他字符扮演的是 meta 字符的角色,也就是指定操作,例如“匹配0至多个的......”、“匹配正好10个的......”等。
     
        POSIX 的正则表达式有两种:基本正则表达式(BRE)以及扩展正则表达式(ERE)。哪个程序使用哪种正则表达式风格,是根据长时间的实际经验,由 POSIX 制定规格,简化到只剩两种正则表达式的风格。通常,ERE 比 BRE 功能更强大,不过不见得任何情况下都是这样。
     
        正则表达式对于程序执行时的 locale 环境相当敏感;方括号表达式里的范围应避免使用,改用字符集,例如[[:alnum:]]较佳。另外,许多 GNU 程序都有额外的 meta 字符。
     
        sed 是处理简单字符串替换(substitution)的主要工具。大部分的 Shell 脚本在使用 sed 时几乎都使用来做替换的操作。
     
        “从最左边开始,扩展至最长(longest leftmost)”,这个法则描述了匹配的文本在何处匹配以及匹配扩展到多长。在使用 sed、awk 或其他交互式文本编辑程序时,这个法则相当重要。除此之外,一行与一个字符串之间的差异也是核心观念。在某些程序语言里,单个字符串可能包含数行,那种情况,^ 与 $ 指的分别是字符串的开头与结尾。
     
        很多时候,在操作上可以将文本文件里每一行视为一条单个记录,而在行内的数据则包括字段。字段可以被空白或是特殊定界符分隔,且有许多不同的 UNIX 工具可处理这两种数据。cut 命令用以剪下选定的字符范围或字段,join 则是用来集合记录中具有共同键值的字段的文件。
     
        awk 多半用于简单的“但命令行程序”,当你想要只显示选定的字段,或是重新安排行内的字段顺序时,就是 awk 派上用场的时候了。由于它是编程语言,即使是在简短的程序里,它也能发挥其强大的功能、灵活性与控制能力。
  • 相关阅读:
    没人比程序猿更讨厌软件
    随心所欲~我也做个集合遍历器吧(自己的foreach,委托的威力)
    EF架构~DefaultValue让我的UnitOfWork更可读
    EF架构~数据分批批量提交
    陷阱~EF中的Update与Insert共用一个数据上下文
    我心中的核心组件(可插拔的AOP)~第四回 异常拦截器
    zigbee学习:示例程序SampleApp中通讯流程
    【网络可靠版】Extjs4 Treegrid 使用实例
    C#实现微信公众号群发消息(解决一天只能发一次的限制)
    oracle12c(oracle12.1.0.1.0)安装指南--实测OEL5.9(RH5)
  • 原文地址:https://www.cnblogs.com/avention/p/10307405.html
Copyright © 2011-2022 走看看