• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Linux文本检索和处理命令

系统管理 彭东稳 9年前 (2015-07-20) 23265次浏览 已收录 0个评论

grep:grep (global search regular expression(RE) ,全面搜索正则表达式)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

UNIX的grep家族包括grep、egrep和fgrep。而egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符,fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义不再特殊。Linux使用GNU版本的grep,它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep命令语法

命令是根据模式(”PATTERN”模式是文本字符和正则表达式的元字符组合而成的匹配条件)搜索文本并将符合模式的文本行显示出来。

[OPTIONS]

PATTERN(普通模式)

PATTERN(使用正则表达式的元字符组合而成的匹配条件,以下就是介绍正则表达式)

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

正则表达式是由普通字符(例如字符a到z)以及特殊字符(也称为”元字符”)组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

1)非打印字符

2)限定符

3)定位符

4)分组

5)特殊字符

许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符”转义”,即,将反斜杠字符 (\) 放在它们前面。

下表列出了正则表达式中的特殊字符:

在grep命令中输入字符串参数时,最好将其用双引号括起来。例如:“mystring”。这样做有两个原因,一是防止被误解为shell命令,而是可以用来查找多个单词组合成的字符串, 例如:“jet plane”,如果不用双引号将其括起来,那么单词plane将被误认为是一个文件,查询结果将返回“文件不存在”的错误信息。在调用变量时,也应该使用双引号, 诸如:grep “$myvariables”文件名,如果不这样将没有返回信息。

另外当需要检索压缩文件时(一般都是处理压缩日志),可以使用zcat查看压缩文件内容然后输出给grep处理。或者使用zgrep -h可以直接检索.gz的压缩文件。

cut文本处理命令并不会影响原文件

使用实例

sort:对文本内容进行排序的命令,文本默认是以ASCII码表进行排序的

使用实例

uniq整理文件中重复的行

tr:字符转换或删除字符的命令

wc用来统计文件中的行、字符、单词数量的命令

join:用来将来自两个分类文本文件的行连在一起,有点像SQL语句中的多表查询;每个文件里都有一些元素与另一个文件相关。由于这种关系, j o i n将两个文件连在一起,这有点像修改一个主文件,使之包含两个文件里的共同元素。文本文件中的域通常由空格或t a b键分隔,但如果愿意,可以指定其他的域分隔符。一些系统要求使用j o i n时文件域要少于2 0,为公平起见,如果域大于2 0,应使用D B M S系统。

split:字符分离命令。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (0)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!