一.grep:文本过滤器
根据正则表达式来工作,由正则表达式或者字符及基本的文本字符所编写的过滤条件
1)grep 匹配条件 处理文件
过滤passwd文件下的包含root的行
-i 搜索时忽略大小写
-E 支持扩展的正则表达式
-v 显示不包含匹配文本的所有行
2)grep中的正则表达式
w…s w和s之间有4个字符的
…s s前面有所有字符的
“<…s" s前面有5个字符的
"<w… w后面所有的字符
“<w…>” w后面4个字符
3)grep中字符的匹配次数设定
grep zs file 字符出现[0-任意次]
-E z?s 字符出现y之前x出现[0-1次]
-E z?s 字符出现y之前x出现[1-任意次]
{n} 字符出现[n次]
{m,n} 字符出现[最少m次,最多n次]
{0,n} 字符出现[0-n次]
{m,} 字符出现[至少m次]
z.*s zs之间任意字符都可匹配
二.sed:文本编辑器
用来操作纯ASCII码的文本,把当前处理的行存储在临时缓冲区,可以仅仅处理指定的行,符合条件的处理,不符合的不处理,完成后把缓冲区的内容输出到屏幕,紧接着处理下一行,直到文件结束
p 显示
sed -n ‘/^#/p’ fstab 只显示#开头的 !p不显示
sed -n ‘/^UUID/p’ fstab 以UUID开头的行
sed -n ‘2,6p’ fstab 显示2到6行
sed -n ‘/1$/p’ fstab 以1结尾的行
sed -n ‘2p;6p’ fstab 显示2行和6行
不显示空白行
不显示空白行和#开头的行
d删除
sed -n ‘/^#/!d’ fstab 删除不是#开头的行
sed -n ‘/^UUID/d’ fstab 删除UUID开头的行
sed -n ‘2,6d’ fstab 删除2到6行
sed -n ‘2d;6d’ fstab 删除2行和6行
删除空白行和#开头的行
a添加
在/etc/行添加zss
i插入
在/etc/行插入zss
c 替换
把以UUID 开头的行替换成zss
w写入
将etc行写入file中
插入file内容到fstab的/etc/行
sed ‘G’ fstab 每行加空行隔开
sed ‘=’ fstab 每行加行号
给以UUID开头的行加入行号
sed ‘s/sbin/linux/g’ passwd 把全文的sbin换成linux
把/替换成空格
把/adm/行到lp行的sbin换成zss
三.awk
awk:文本报告生成器,逐行处理文本,支持在处理第一行之前,做一些准备工作,以及在处理完后做一些总结性质的工作
BEGIN{ }:读入第一行文本之前执行,一般用来初始化操作
{ }:逐行读入进行处理
END{ }:处理完最后一行后执行,一般由来输出处理结果
添加输出的字符串并且只显示可以登陆的用户
添加输出的字符串并且只显示不可以登陆的用户 (!)
抓取IP:
inet行的 第二列
awk也可以做运算
第6列是以bin$结尾的输出这行
查找用户是否能登录,并输出登录用户的用户名和个数
输出在第2行到第6行之间的行