shell脚本之正则表达式与grep

一、正则表达式

1、正则表达式的定义

  • 什么是正则表达式:
    正则表达式,又称规则表达式,(英语:Regular Expression)在代码中常简写为 regex、regexp 或 RE ,计算机科学的一个概念。

  • 作用:
    正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本

  • 正则表达式不只有一种,而且 Linux 中不同的程序可能会使用不同的正则表达式,如:
    工具:
    grep、 sed 、awk、 egrep
    正则表达式——通常用于判断语句中,用来检查某一字符串是否满足某一格式

  • 正则表达式是由普通字符与元字符组成
    普通字符:包括大小写字母、数字、标点符号及一些其他符号
    元字符:是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式

  • LINUX 中常用的有两种正则表达式引擎
    基础正则表达式:BRE
    扩展正则表达式:ERE

2、grep命令

格式

grep   [选项]    查找条件   目标文件

常用选项

选项 含义
-E 开启扩展(Extend)的正则表达式
-c 计算找到 ‘搜寻字符串’ 的次数
-i 忽略大小写的不同,所以大小写视为相同
-o 只显示被模式匹配到的字符串
- - color=auto 可以将找到的关键词部分加上颜色的显示
-n 顺便输出行号
-v 反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!(反向查找,输出与查找条件不相符的行)

例子文件lizi.txt
在这里插入图片描述

1、统计root字符总行数

[root@ky19cl zzbds]# grep -c root /etc/passwd
2

在这里插入图片描述
2、不区分大小写查找

[root@ky19cl zzbds]# ls
lizi.txt
[root@ky19cl zzbds]# grep -i 'the' lizi.txt 

在这里插入图片描述

3、将非空行输入到test.txt文件中

[root@ky19cl zzbds]# grep -v "root"  passwd|grep -v "^$" > test.txt

在这里插入图片描述

4、过滤ip(ens33)

[root@ky19cl zzbds]# ifconfig ens33 | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"|head -1
192.168.159.50
</
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Linux中,grep命令可以用于在文件中搜索匹配某个正则表达式的文本。下面是一些关于grep正则表达式的常见用法: 1. 使用`.`表示任意一个字符。例如,`grep '.' a.txt`将匹配包含任意一个字符的字符串。\[1\] 2. 使用`|`表示逻辑或操作符。例如,`grep 'fatal\|error\|critical' /var/log/nginx/error.log`将匹配包含单词"fatal"、"error"或"critical"的行。\[2\] 3. 使用`*`表示零次或多次匹配前面的字符或子表达式。例如,`grep 'se*' a.txt`将匹配包含以"s"开头,后面跟着零个或多个"e"的字符串,如"s"、"se"、"see"等。\[3\] 这些是grep正则表达式的一些基本用法,你可以根据具体的需求进行进一步的学习和使用。 #### 引用[.reference_title] - *1* *3* [Linux grep 正则表达式](https://blog.csdn.net/panguangyuu/article/details/105033383)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux Grep 正则表达式](https://blog.csdn.net/ZauberC/article/details/130629591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值