Linux文本处理三剑客grep、sed、awk
Global search regular expression and print out the line 全面搜索研究正则表达式并显示出来
grep 命令是一种强大的文本搜索工具 ,
根据用户指定的“模式”对目标文本进行匹配检查 ,
打印匹配到的行由正则表达式或者字符及基本文本字符所编写的过滤条件
1.grep的格式
示例:
2.grep中的正则表达式
grep 中字符的匹配次数设定
符号 | 涵义 |
---|---|
* | 字符出现 [0- 任意次] |
\? | 字符出现 [0-1 次] |
+ | 字符出现 [1- 任意次] |
{n} | 字符出现 [n 次 ] |
{m,n} | 字符出现 [ 最少出现 m 次,最多出现 n 次 ] |
{0,n} | 字符出现 [0-n 次 ] |
{m,} | 字符出现 [ 至少 m 次 ] |
(xy){n}xy | 关键字出现 [n 次 ] |
.* | 关键字之间匹配任意字符 |
grep 中字符的匹配位置设定
3.脚本实验
编写脚本找出可以登录系统的用户
执行脚本:
显示ip的脚本ip_show.sh
执行脚本:
stream editor 用来操作纯 ASCII 码的文本
处理时 , 把当
前处理的行存储在临时缓冲区中 , 称为“模式空间” (pattern space) 可以指定仅仅处理哪些行
sed 符合模式条件的处理
不符合条件的不予处理处理完成之后把缓冲区的内容送往屏幕英语培训费用
接着处理下一行 , 这样不断重复 , 直到文件末尾
1.sed命令格式
sed 对字符的处理
p 显示 d 删除 a 添加 c 替换 w 写入 i
插入
2.p 模式操作
-n:显示输出结果
编写脚本,使用userfile和passfile创建用户
脚本的执行:
3.d模式操作
4.a模式操作
5.i模式操作
编写脚本,安装apache并且修改其端口为8080:
执行脚本
awk 处理机制 :awk 会逐行处理文本 , 支持在处理第一行之前做一些准备工作 , 以及在处理完最后一行做一些总结性质的工作 ,
在命令格式上分别体现如下 :
BEGIN{}: 读入第一行文本之前执行 , 一般用来初始化操作
{}:
逐行处理 , 逐行读入文本执行相应的处理 , 是最常见的编辑指令快
END{}: 处理完最后一行文本之后执行 ,
一般用来输出处理结果
1.awk命令
其他截图效果不再赘述,望读者自行演示
2.awk应用
找出可以登录系统的用户并统计个数
找出可登录的用户但是家目录不在/home下
统计可登录的用户但是家目录不在/home下个数
显示一个文件的行数:
抓取网卡的ip