一、grep
grep正则表达式的全称为(Global search Regular EXpression),是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep文本处理工具有grep和egrep两种,其中egrep是grep的扩展在使用命令时grep -E = egrep。
1.1 grep命令的使用格式
一般情况下,grep命令工作在贪婪模式下,即趋于最大长度的匹配
grep命令常用参数如下:
参数 | 含义 |
---|---|
-i | 忽略大小写 |
-v | 反向过滤 |
-n | 显示过滤的行号 |
参数-i
参数-v
参数-n
1.2 grep命令中的字符匹配规则
匹配格式 | 含义 |
---|---|
^wang | 匹配以wang开头的行 |
wang$ | 匹配以wang结尾的行 |
w…g | 匹配以w和g之间有三个任意字符的行 |
* | 匹配其前字符任意次 |
? | 匹配其前字符一次或零次 |
+ | 匹配其前字符至少一次 |
{n} | 匹配其前字符n次 |
{m,n} | 匹配其前字符m-n次 |
{,n} | 匹配其前字符至多n次 |
{m,} | 匹配其前字符至少m次 |
(wang){2} | 匹配字符串wang至少两次 |
示例1:
示例2:
示例3:
二、sed
sed(Stream Editor)成为数据流编辑器,它是一种行编辑器,逐行处理ASCII的纯文本,符合要求的行进行处理,不符合的则不予理睬。
2.1 命令格式
sed命令有两种格式:
sed 参数 命令 处理对象
sed 参数 处理对象 -f 处理规则文件
示例:
2.2 常用命令及参数
常用的命令:
命令 | 含义 |
---|---|
p | 显示符合条件的行 |
d | 删除符合条件的行 |
a | 在指定的行后添加新行 |
i | 在指定的行前添加新行 |
c | 替换指定的行 |
w | 将指定范围内的内容另存到指定的文件中 |
r | 将指定的文件内容添加到另一个文件中符合条件的行后面 |
sed中符合条件的地址(行)的表达方式:
1、起始行,结束行 表示从起始行到结束行
2、/正则表达式/ 固定格式
3、具体数字, 指定的行
常见的参数:
sed命令在默认情况下处理完成后会将模式空间中的内容显示出来
参数 | 含义 |
---|---|
-n | 静默模式,不显示模式空间中的内容 |
-e | 多条策略 |
-i | 将更改内容导入到文件中,更改原文件内容 |
sed中的字符替换类似于vim中的字符替换
三、awk
命令格式:
awk -F 分隔符 BEGIN{}{}END{} FILENAME
①其中不加参数-F时默认使用的分隔符为空格
②BEGIN以及END选项可以不加,只添加中间花括号中的操作即可
awk常用的固定参数
参数 | 含义 |
---|---|
NR | 行数 |
NE | 列数 |
FILENAME | 文件名称本身 |
示例1:打印文件的行数,逐行处理,每一行处理后行数加1
示例2:以空格为分隔符显示文件的列数,下图中绿色框中包含一个空格其他行均无空格,此命令仍然为逐行处理,逐行显示每行包含多少列
示例3:显示文件名称
示例4:打印文件的行数
awk命令中$1表示第一列,$2表示第二列以此类推,注意$0表示所有列
awk命令也可以在中间花括号执行动作之前根据条件做筛选,使用的格式为/正则表达式/,而且可以添加多个条件
awk命令可以筛选出哪一列的信息是什么不是什么