一,grep
1.1 grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
格式: grep 匹配条件 处理文件
gerp -E =egrep
grep root passwd 过滤root关键字
grep ^root passwd 以root开头 grep root$ passwd 以root结尾
grep -i root passwd 忽略略大小写
grep -E "\<root" passwd root字符之前不能有字符
grep -E "root\>" passwd root字符之后不能有字符
grep -数字 显示过滤行以及上面几行和下面几行
grep -n 显示匹配的行所在行号
grep -A 显示过滤行以及下面几行
grep -B 显示过滤行以及上面几行
grep -v 反向过滤
1.2grep字符数量匹配规则
^westos 以westos开有
westos$ 以westos结尾
w....s w开头s结尾中间4个任意字符
.....s s结尾前面5个任意字符
* 字符出现0到人一次
? 0到1此
+ 1到任一次
{n} n次
{m,n} m次到n次
{0,n} 0次-n次
{,n} 0次-n次
{m,} 最少m次
(lee){2} lee字符串出现2次
二、sed
sed 可依照脚本的指令来处理、编辑文本文件。
sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等
命令格式: sed 参数 命令 处理对象
sed 参数 处理对象 -f 处理规则文件
2.1对字符的处理
p显示
d删除
a添加
c替换
w把符合的行写到指定文件中
i插入
r整合文件
sed字符替换
三、awk
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
命令格式
awk -F 分隔符 BEGIN{}{}END{} FILENAME
-F指定分隔符(默认以空格为分隔符),BEGIM{}{}:开始和中途的动作,END{}最后要做的动作 ;FILENAME:文件名称
NR 行数
NF 列数
FILENAME 文件名称本身
westos westos变量值
"westos" westos字符串
$0 所有的列
$1 第一列
$2 第二列
$3 第三列
以此类推
逐行统计列数
/bash$/ 条件
/条件1|条件2/ 条件1或者条件2
/条件1/||/条件2/ 条件1或者条件2
/条件1/&&/条件2/ 条件1并且条件2
测试
显示系统中能被su命令切换的用户名称
完整版
2.Apache_port.sh此脚本后介入数字,http的端口就改为此数字,假设selinux为关闭状态
完整版
3.统计在系统中能su切换的并且用户加目录不在/home下的用户数量
完整版
[root@rhel8_node1 mnt]# sh westos.sh
root
1