目录
grep命令:
sed命令:
awk命令
简单概括:
grep:数据查找
awk:数据切片
sed:数据修改
grep命令:
限定符“+”:匹配其前面的字符1次或多次。至少匹配一次
区别于 限定符“*”:匹配前导字符0次或多次
grep全称是Global Search Regular Expression and Print out the line,全局搜索正则表达式并打印文本行
它是一个强大的文本搜索命令
可以从一个或多个文件中搜索与指定模式匹配的文本行,并打印匹配结果
命令格式
grep [选项] [模式] [文件名] 其中,多个文件名可以使用空格分隔
查找/etc/sysctl.conf文件中以“#”符号开头文本行,并显示每行的行号。
grep -n ^# sysctl.conf
搜索/etc/yum.conf文件中的空白行和非空白行。
grep -c ^$ yum.conf
sed命令:
sed全称是stream editor
它是一个非交互式的文本处理命令
可以从文本文件和标准输入进行编辑
标准输入:键盘、文件重定向、字符串、变量等
编辑命令复杂,文件过大、文本处理需要执行多个函数时使用该命令
一次性处理所有的编辑任务,提高效率,节约时间
1. 追加文本
sed '指定地址a\text' 输入文件
编辑命令‘\a’, 将一行或多行文本追加到指定位置
指定位置以匹配模式“/pattern/”或行号形式给出
不指定,则默认放在每一行后面
追加文本 命令实现: $sed '/For rain/a\add a new line!!!' poem
追加文本脚本实现: vi add.sh
/For rain/a\
we add a new line!!!
/==/a\
add another new line!!!
sed –f add.sh poem
追加操作仅在标准输出中对输出结果进行追加,不修改源文件
修改源文件使用-i选项
2. 删除文本
删除某一行,使用编辑命令d
awk命令:
awk是一种非常强大的数据处理工具,其本身是一种程序设计语言。
Awk在读取分析数据时,从头到尾逐行扫描文件内容,寻找与指定模式匹配的行,并对匹配的文本行进行处理
awk命令基本格式
awk [选项] pattern {actions}
文件 文本符合pattern时则执行actions操作,至少有一个:
pattern 是匹配模式(可选) 省略pattern则对所有文本执行actions操作
actions 是要执行的操作(可选)
省略actions则将匹配结果打印到终端
2.正则表达式
awk支持以正则表达式作为匹配模式,它的用法与sed一样。
/^x/匹配与x开头的文本行
3.混合模式 匹配文本行开头是li且第二列值大于80的内容
4.区间模式
awk还支持区间模式,通过模式可以匹配一段连续的文本行。
pattern1, pattern2
从匹配pattern1的文本行开始,到匹配pattern2的文本行结束,中间连续几个文本行都会被匹配到。
5.BEGIN模式和END模式
BEGIN模式执行在读取数据之前,当awk读取数据之后,便不再有效。
END模式在awk读取完所有数据后执行,也中被执行一次。用户可以将善后工作放在END模式中。