目录

grep命令:

 sed命令:

 awk命令

简单概括:

grep:数据查找

awk:数据切片

sed:数据修改

grep命令:

 限定符“+”:匹配其前面的字符1次或多次。至少匹配一次

区别于 限定符“*”:匹配前导字符0次或多次

grep 匹配时间范围 grep 匹配空格_grep 匹配时间范围

 grep全称是Global Search Regular Expression and Print out the line,全局搜索正则表达式并打印文本行

它是一个强大的文本搜索命令

可以从一个或多个文件中搜索与指定模式匹配的文本行,并打印匹配结果

命令格式

grep [选项] [模式] [文件名] 其中,多个文件名可以使用空格分隔

 

grep 匹配时间范围 grep 匹配空格_运维_02

 查找/etc/sysctl.conf文件中以“#”符号开头文本行,并显示每行的行号。

grep -n ^# sysctl.conf

grep 匹配时间范围 grep 匹配空格_服务器_03

 搜索/etc/yum.conf文件中的空白行和非空白行。

grep -c ^$ yum.conf

grep 匹配时间范围 grep 匹配空格_运维_04

 sed命令:

sed全称是stream editor

它是一个非交互式的文本处理命令

可以从文本文件和标准输入进行编辑

标准输入:键盘、文件重定向、字符串、变量等

编辑命令复杂,文件过大、文本处理需要执行多个函数时使用该命令

一次性处理所有的编辑任务,提高效率,节约时间

 

grep 匹配时间范围 grep 匹配空格_grep 匹配时间范围_05

 

grep 匹配时间范围 grep 匹配空格_grep 匹配时间范围_06

 

grep 匹配时间范围 grep 匹配空格_sed_07

                      1. 追加文本               

sed '指定地址a\text' 输入文件

编辑命令‘\a’, 将一行或多行文本追加到指定位置

指定位置以匹配模式“/pattern/”或行号形式给出

不指定,则默认放在每一行后面

 追加文本 命令实现: $sed '/For rain/a\add a new line!!!' poem

grep 匹配时间范围 grep 匹配空格_运维_08

追加文本脚本实现: vi add.sh

/For rain/a\

we add a new line!!!

/==/a\

add another new line!!!

sed –f add.sh poem 

grep 匹配时间范围 grep 匹配空格_运维_09

 追加操作仅在标准输出中对输出结果进行追加,不修改源文件

修改源文件使用-i选项

 

grep 匹配时间范围 grep 匹配空格_运维_10

                            2. 删除文本

 删除某一行,使用编辑命令d

 

grep 匹配时间范围 grep 匹配空格_grep 匹配时间范围_11

 awk命令:

 awk是一种非常强大的数据处理工具,其本身是一种程序设计语言。

Awk在读取分析数据时,从头到尾逐行扫描文件内容,寻找与指定模式匹配的行,并对匹配的文本行进行处理

awk命令基本格式

awk [选项] pattern {actions}

文件 文本符合pattern时则执行actions操作,至少有一个:

          pattern 是匹配模式(可选) 省略pattern则对所有文本执行actions操作

actions 是要执行的操作(可选)

         省略actions则将匹配结果打印到终端 

 

grep 匹配时间范围 grep 匹配空格_服务器_12

 

grep 匹配时间范围 grep 匹配空格_grep 匹配时间范围_13

 2.正则表达式

awk支持以正则表达式作为匹配模式,它的用法与sed一样。

/^x/匹配与x开头的文本行

 

grep 匹配时间范围 grep 匹配空格_sed_14

 3.混合模式     匹配文本行开头是li且第二列值大于80的内容

 

grep 匹配时间范围 grep 匹配空格_sed_15

 4.区间模式   

                awk还支持区间模式,通过模式可以匹配一段连续的文本行。

 pattern1, pattern2 

从匹配pattern1的文本行开始,到匹配pattern2的文本行结束,中间连续几个文本行都会被匹配到。

 

grep 匹配时间范围 grep 匹配空格_服务器_16

 5.BEGIN模式和END模式

BEGIN模式执行在读取数据之前,当awk读取数据之后,便不再有效。

END模式在awk读取完所有数据后执行,也中被执行一次。用户可以将善后工作放在END模式中。