Board logo

标题: 使用 Linux 文本工具简化数据的提取(1)正则表达式 [打印本页]

作者: look_w    时间: 2018-5-19 14:44     标题: 使用 Linux 文本工具简化数据的提取(1)正则表达式

Linux 操作系统中有很多文件:配置文件、文本文件、文档文件、日志文件、用户文件,这个清单还在不断增长。通常,这些文件都包含了要查找重要数据所需要访问的一些信息。尽管我们可以简单地使用诸如 cat、more 之类的标准工具将大部分文件的内容输出到屏幕上,但是系统中有更加合适的工具可以对文本进行过滤和处理,这样就可以只关心我们想要的内容。
在阅读本文的过程中,您可以打开 shell 并体验一下每个工具的例子。
正则表达式在开始之前,我们需要首先理解什么是正则表达式,以及如何使用正则表达式。
在最简单的形式中,正则表达式(regular expression)是用来在文件中定位文本的一些搜索标准。例如,要查找所有包含单词 “admin” 的行,我们就可以对 “admin” 进行搜索。因此,“admin” 就构成了一个正则表达式。如果我们不但希望查找 “admin”,而且还想将其替换成 “root”,那么我们就可以在一个工具中使用适当的命令将 “admin” 替换成 “root”。它们都构成了正则表达式。
正则表达式所采用的一些基本规则如下:
表 1 给出了这些规则是如何真正进行匹配的。
表 1. 示例正则表达式例子说明[abc]匹配 “a”、“b”、“c” 之一[a-z]匹配从 “a” 到 “z” 的任何一个小写字符[A-Z]匹配从 “A” 到 “Z” 的任何一个大写字符[0-9]匹配从 0 到 9 的任何一个数字[^0-9]匹配任何除了 0 到 9 数字范围内的任何字符[-0-9]匹配从 0 到 9 的任何数字,或者是短横线(-)[0-9-]匹配从 0 到 9 的任何数字,或者是短横线(-)[^-0-9]匹配除从 0 到 9 的数字和短横线(-)之外的任何字符[a-zA-Z0-9]匹配任何字符或数字
了解了这些信息,下面让我们开始看一下相关工具。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0