Shell脚本(四) grep的应用 正则表达式的应用 sed应用 awk应用

本文介绍了如何在Linux环境中使用Shell脚本来处理文本。通过grep命令,展示了过滤、查找和匹配文本的关键技巧;利用sed进行行选择、删除、替换等操作;还使用awk来处理文件内容,提取特定列和行。这些技能对于日常的系统管理和自动化任务至关重要。
摘要由CSDN通过智能技术生成

Shell脚本(四)


本次试验需要一个test.txt文件
在这里插入图片描述
文件内容:

he was short and fat.
He was wearing a blue polo shirt with black pants.
The home of Football on BBC Sport online.
the tongue is boneless but it breaks bones.12!
google is the best tools for search keyword.
The year ahead will test our political establishment to the limit.
PI=3.141592653589793238462643383249901429
a wood cross!
Actions speak louder than words

#woood #
#woooooood #
AxyzxyzxyzxyzC
I bet this place is really spooky late at night!
Misfortunes never come alone/single.
I shouldn't have lett so tast.

首先将test.txt文件导入到linux中

[root@centos01 ~]# rz

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

grep的应用

过滤关键字中包含the的并且显示行号

[root@centos01 ~]# grep -n 'the' test.txt

在这里插入图片描述
查找开头是the的行

[root@centos01 ~]# grep -n '^the' test.txt

在这里插入图片描述
匹配以单个字符开头是w中间任意结束为d的关键词

[root@centos01 ~]# grep -n 'w..d' test.txt

在这里插入图片描述

匹配括号里边的内容

[root@centos01 ~]# grep -n 'sh[io]rt' test.txt

在这里插入图片描述

只显示匹配内容

[root@centos01 ~]# grep -o 'wood' test.txt 

在这里插入图片描述
向test.txt中增加有一行

[root@centos01 ~]# vim test.txt

在这里插入图片描述
转义字符使用

[root@centos01 ~]# grep -n -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" test.txt

在这里插入图片描述

正则表达式的应用

wo开头d前面重读一个或者多个字符显示出来

[root@centos01 ~]# egrep -n 'wo+d' test.txt 

在这里插入图片描述
匹配d前边任意字符显示出来

[root@centos01 ~]# egrep -n '?d' test.txt

在这里插入图片描述
修改test.txt方便试验

[root@centos01 ~]# vim test.txt

在这里插入图片描述
匹配linux或者Linux字符显示出来

[root@centos01 ~]# egrep -n 'linux|Linux' test.txt

在这里插入图片描述
匹配h、o、r任意字符显示出来

[root@centos01 ~]# egrep -n '(h|o|r)' test.txt

在这里插入图片描述
匹配以s开头结束为t中间是hor的字符

[root@centos01 ~]# egrep -n 's(hor)t' test.txt

在这里插入图片描述

sed应用

显示1到5行

[root@centos01 ~]# sed -n '1,5p' test.txt

在这里插入图片描述
显示奇数行

[root@centos01 ~]# sed -n '1p;3p;5p' test.txt

在这里插入图片描述
删除第一行

[root@centos01 ~]# sed '1d' test.txt 

在这里插入图片描述
将大写Linux 替换为小写的linux

[root@centos01 ~]# sed -i 's/Linux/linux/' test.txt

在这里插入图片描述
对ip关键字添加注释

[root@centos01 ~]# sed -i '/^ip/s/^/#/' test.txt

将1~5行移动到37行后

[root@centos01 ~]# sed -i '1,5{H;d};37G' test.txt

awk应用

创建1.txt文件

[root@centos01 ~]# vim 1.txt

在这里插入图片描述
显示文本内容

[root@centos01 ~]# awk '{print}' 1.txt

在这里插入图片描述
显示第一列数据

[root@centos01 ~]# awk '{print $1}' 1.txt

在这里插入图片描述
显示第一列和第二列数据

[root@centos01 ~]# awk '{print $1,$2}' 1.txt

在这里插入图片描述
显示第一列和第二列数据使用–分割号分割

[root@centos01 ~]# awk '{print $1"----"$2}' 1.txt

在这里插入图片描述
显示第一行和第二行数据

[root@centos01 ~]# awk 'NR==1,NR==2{print}' 1.txt

在这里插入图片描述
过滤/etc/passwd的第七列数据

[root@centos01 ~]# awk -F ':' {'print $7'}  /etc/passwd

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值