Shell三剑客之grep

前言:

Shell三剑客是grep、sed和awk三个工具的简称,因功能强大,使用方便且使用频率高,因此被戏称为三剑客,熟练使用这三个工具可以极大地提升运维效率。

grep是文本查找或搜索工具,用于查找内容包含指定的范本样式的文本。它会一行一行循环匹配,匹配到相应的值时会先输出,然后换行继续匹配再换行直到所有的内容都匹配完。

1. 常用参数

bash 复制代码
-n:显示行号;
-i:忽略大小写;
-o:精准匹配;
-f:从文件每一行获取匹配模式;
-c:统计匹配的行数;
-w:匹配 整个单词;
-E:使用扩展正则表达式,相当于egrep;
-F :相当于fgrep,就是将pattern视为固定字符串。
-v:反转查找,显示不被 pattern 匹配到的行,相当于[^] 反向匹配;
-A:后面可加数字,为 after 的意思,除了列出该行外,后续的 n 行也列出来;
-B:后面可加数字,为 before 的意思,除了列出该行外,前面的 n 行也列出来;
-C:后面可加数字,为context 的意思,除了列出该行外,前后的n行也列出来。

2. 示例

**1)**查找多个文件中相同的内容

bash 复制代码
[root@test02 ~]# grep "NUMBER" file1.txt file2.txt
file1.txt:NUMBER=100
file2.txt:NUMBER=10

**2)**过滤以#开头的行和空白行

bash 复制代码
[root@test02 ~]# egrep -v "^#|^$"  a.txt 
fsjdf
fdfs

**3)**计算匹配项的数目

bash 复制代码
[root@test02 ~]# cat /etc/passwd| grep -c nologin
16

**4)**输出正则匹配到的内容

bash 复制代码
[root@test02 ~]# echo 'this is a test shell!' |grep -oE "[a-z]+"
this
is
a
test
shel

**5)**只显示匹配的字符串

bash 复制代码
[root@test02 ~]#  echo 'this is a test' |grep -o 'is'
is
is

**6)**匹配显示所有IP

bash 复制代码
[root@test02 ~]# ifconfig |grep -E -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
192.168.10.12
255.255.255.0
192.168.10.255
127.0.0.1
255.0.0.0

7**)删除K8S节点所有包含google的镜像**

bash 复制代码
root@node01:~# crictl rmi `crictl image | grep google | awk '{print $3}'` 
Deleted: registry.aliyuncs.com/google_containers/csi-external-health-monitor-controller:v0.10.0
Deleted: registry.aliyuncs.com/google_containers/snapshot-controller:v6.3.1
Deleted: registry.aliyuncs.com/google_containers/kube-webhook-certgen:v20230407
Deleted: registry.aliyuncs.com/google_containers/csi-provisioner:v3.6.0
Deleted: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.0
Deleted: registry.aliyuncs.com/google_containers/csi-resizer:v1.9.0
Deleted: registry.aliyuncs.com/google_containers/csi-snapshotter:v6.3.0
Deleted: registry.aliyuncs.com/google_containers/hostpathplugin:v1.9.0
Deleted: registry.aliyuncs.com/google_containers/kube-proxy:v1.29.0
Deleted: registry.aliyuncs.com/google_containers/livenessprobe:v2.11.0
Deleted: registry.aliyuncs.com/google_containers/coredns:v1.11.1
Deleted: registry.aliyuncs.com/google_containers/csi-attacher:v4.4.0
Deleted: registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.9.0
Deleted: registry.aliyuncs.com/google_containers/nginx-ingress-controller:v1.8.2
相关推荐
oMcLin1 小时前
如何在Manjaro Linux上配置并优化Caddy Web服务器,确保高并发流量下的稳定性与安全性?
linux·服务器·前端
济6171 小时前
linux(第七期)--gcc编译软件-- Ubuntu20.04
linux·运维·服务器
corpse20101 小时前
Linux监控软件Monitorix 安装部署
linux·安全
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [fs]super
linux·笔记·学习
Sheffield2 小时前
今天浅浅的回顾一下Ansible吧
运维
姚青&2 小时前
四.文件处理命令-文本编辑
linux
oMcLin2 小时前
如何在 Red Hat Linux 8 上实现 Kubernetes 自定义资源管理器(CRD)扩展,支持微服务架构
linux·架构·kubernetes
济6172 小时前
linux(第十一期)--Makefile 语法简述-- Ubuntu20.04
linux
hwlfly2 小时前
Linux内核TCP网络模块深度分析
linux
杜文龙3 小时前
gitlab系统搭建AI代码自动审查多项目可复用架构
linux