- A+
所属分类:linux技术
@
剑仙镇楼~ O(∩_∩)O
前言
上一篇中已经预告,我们这篇主要说Linux文本处理三剑客。他们分别是grep、sed、awk 。既然能被业界称为三剑客,可见其在Linux命令中占有举足轻重得地位。所以呢,这里也专门写一篇文章说一说其用法。
正则表达式
三剑客一般会配合着正则表达式一起使用,为了更好的掌握三剑客,这里简单介绍下正则表达式的使用。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成。在搜索文本时,与要搜索的字符串进行匹配
举个栗子
*.txt # 表示任意以.txt结尾的文件
这里就不列出所有的了,我们只把常用的拿出来
1、特殊字符
注:如果需要匹配一下字符,需要在字符前加进行转义
特殊字符 | 特殊字符说明 | 例子 |
---|---|---|
(** | 匹配字符串的结尾位置 | **x)匹配以"x"结尾的字符串 | ||
^ | 匹配字符串的开头位置 | ^abc 匹配以"abc"开头的字符串 |
. | 匹配任意一个字符,除了换行符外 | |
***** | 匹配前面的0次或多次的子表达式 | |
+ | 匹配前面字符有 1 个或多个 | |
.* | 匹配任意一个字符有 0 个或多个,也就是能匹配任意的字符 | |
{} | 匹配前面字符的数量范围 | {2}表示重复两次,{2,}表示至少重复两次,{2-4} 重复2-4次 |
[] | 括号中可以包含表示字符集的表达式 | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cgsing2y-1650173645257)(快速上手Linux核心命令(五):文本处理三剑客/1649470939258a-z-1649470958893.png)] |
2、非打印字符
字符 | 字符说明 |
---|---|
f | 匹配一个换页符 |
n | 匹配一个换行符 |
r | 匹配一个回车符 |
t | 匹配一个制表符 |
s | 配任何空白字符,包括空格、制表符、换页符 |
S | 匹配任何非空白字符 |
第一剑客 grep
1、简介
grep:文本过滤工具。 用于查找文件里符合条件的字符串,一般配合正则表达式一起使用。
grep 只支持匹配而不能替换匹配的内容,替换的功能可以由 sed 来完成。
2、语法格式
grep [参数选项] [匹配模式][查找得文件]
上面说的匹配模式就是你需要找得东西,可以是普通文字符号,也可以是正则表达式。
3、参数说明
参数 | 参数说明 |
---|---|
-A | 除了显示匹配内容行之外,还显示该行之后的N行 |
-B | 除了显示匹配内容行之外,还显示该行之前的N行 |
-C | 除了显示匹配内容行之外,还显示该行之前后的N行 |
-c | 统计匹配的行数 |
-e | 实现多个选项间的逻辑 or 关系 |
-E | 支持扩展的正则表达式 |
-i | 忽略大小写 |
-n | 显示匹配行和行号 |
-o | 仅显示匹配到的字符串 |
-q | 不输出任何信息,脚本中常用 |
-v | 显示不被匹配到的行或者说排除某些行 |
-w | 显示匹配整个单词 |
--color | 为grep过滤的匹配字符串添加颜色,以突出显示 |
4、实践操作
后面的示例都是以操作下面文本为例
# 下面是我们演示所使用的文本文件 [root@xiezhr test]# cat xiezhr.txt 90后,毕业于某不知名本科院校,通信工程专业 目前从事IT类工作,工作生活于春城昆明 天天被各种奇葩业务折腾得死去活来,但依然保有对各项技术热忱得追求和美好生活得向往 个人