一.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行之间的行

本文详细介绍Linux下grep、sed和awk三种强大的文本处理工具。grep用于正则表达式匹配,sed擅长文本编辑,awk则用于复杂的数据分析和报告生成。文章深入讲解了它们的功能和用法,包括正则表达式的使用、文本的筛选、替换、添加和删除操作,以及awk的高级数据处理技巧。
1377

被折叠的 条评论
为什么被折叠?



