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
相关推荐
真真-真真8 分钟前
WebXR
linux·运维·服务器
轩辰~30 分钟前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
wanhengidc1 小时前
短视频运营行业该如何选择服务器?
运维·服务器
雨中rain1 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG2 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss2 小时前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish2 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个2 小时前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&2 小时前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱2 小时前
【linux】NFS实验
linux·服务器