加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

3.4 小结

发布时间:2020-12-14 06:10:27 所属栏目:百科 来源:网络整理
导读:? ? 如需从输入的数据文件中取出特定的文本行,主要的工具为 grep?程序。POSIX?采用三种不同?grep?变体:grep、egrep?与?fgrep?的功能,整合为单个版本,通过不同的选项,分别提供这三种行为模式。 ? ? ? 虽然可以直接查找字符串常数,但是正则表达式能提供
? ? 如需从输入的数据文件中取出特定的文本行,主要的工具为 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?派上用场的时候了。由于它是编程语言,即使是在简短的程序里,它也能发挥其强大的功能、灵活性与控制能力。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读