第8章grep家族.PDFVIP

  • 0
  • 0
  • 约7.78千字
  • 约 10页
  • 2017-11-27 发布于江苏
  • 举报
第8章grep家族

下载 第8章 grep 家 族 相信g r e p是U N I X和L I N U X 中使用最广泛的命令之一。 g r e p (全局正则表达式版本)允许 对文本文件进行模式查找。如果找到匹配模式, g r e p打印包含模式的所有行。 g r e p支持基本正 则表达式,也支持其扩展集。 g r e p有三种变形,即: G r e p :标准g r e p命令,本章大部分篇幅集中讨论此格式。 E g r e p :扩展g r e p ,支持基本及扩展的正则表达式,但不支持 \ q 模式范围的应用,与之相 对应的一些更加规范的模式,这里也不予讨论。 F g r e p :快速g r e p 。允许查找字符串而不是一个模式。不要误解单词 f a s t,实际上它与g r e p 速度相当。 在本章中我们将讨论: • grep (参数)选项。 • 匹配g r e p 的一般模式。 • 只匹配字母或数字,或两者混用。 • 匹配字符串范围。 实际上应该只有一个g r e p命令,但不幸的是没有一种简单形式能够统一处理 g r e p 的三种变 形,将之合而为一,并保持 g r e p单模式处理时的速度。 GNU grep 虽然在融合三种变形上迈进 了一大步,但仍不能区分元字符的基本集和扩展集。上一章只讨论了基本的正则表达式,但 在查看 g r e p时也涉及到一些扩展模式的匹配操作。然而,首先还是先讨论一下在 g r e p和f g r e p 及e g r e p 中均可使用的g r e p模式吧。 开始讨论之前,先生成一个文件,插入一段文本,并在每列后加入 Ta b 键,g r e p命令示 例中绝大多数将以此为例,其命名为 d a t a . . f 。生成一个文件,但不知其含义,将是一件很枯燥 的事。那么先来看看d a t a . f 的记录结构。 第1列:城市位置编号。 第2列:月份。 第3列:存储代码及出库年份。 第4列:产品代号。 第5列:产品统一标价。 第6列:标识号。 第7列:合格数量。 第8章 g rep 家 族 57 下载 8.1 grep g r e p一般格式为: grep [选项]基本正则表达式 [文件] 这里基本正则表达式可为字符串。 8.1.1 双引号引用 在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如:“m y s t r i n g ”。这样做 有两个原因,一是以防被误解为 s h e l l命令,二是可以用来查找多个单词组成的字符串,例如: “jet plane ”,如果不用双引号将其括起来,那么单词 p l a n e将被误认为是一个文件,查询结果 将返回“文件不存在”的错误信息。 在调用变量时,也应该使用双引号,诸如: g r e p “$ M Y VA R ”文件名,如果不这样,将 没有返回结果。 在调用模式匹配时,应使用单引号。 8.1.2 grep选项 常用的g r e p选项有: -c 只输出匹配行的计数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹配文本的所有行。 8.1.3 查询多个文件 如果要在当前目录下所有 . d o c文件中查找字符串“ s o r t ”,方法如下: $ grep sort*.doc 或在所有文件中查询单词“ sort it ” $ grep sort it * 现在讲述在文本文件中 g r e p选项的用法。 8.1.4 行匹配 $ grep -c 48data.f $ 4 g r e p返回数字4 ,意义是有4行包含字符串“4 8 ”。 现在显示包含“4 8 ”字符串的4行文本: 58 第二部分 文 本 过 滤

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档