Linux命令行中正则的使用

Linux中正则的运用

实验条件

  • /bin/bin/zsh中 或 /bin/bash使用
  • 正则表达式元字符

数字实例(锚定前后数字)

使用seq生成数据 开头和结尾

seq 20 2 100 | head -5

Desc:
这条命令用于生成从 20100 之间的等差数列,步长为 2,并且只输出前 5 个数。
- `seq 20 2 100`: 这个部分生成了一个从 20 开始,以 2 为步长,到 100 结束的等差数列。
- `|`: 管道符号,将前一个命令的输出传递给下一个命令。
- `head -5`: 这个部分表示只取输出结果的前 5 行。

在这里插入图片描述

seq 20 2 100 | grep '5'
过滤包含数字5的数据,还可以重定向到指定文件 
例:
seq 20 2 100 | grep '5' > test.txt

现在来匹配正则过滤

seq 20 2 100 | grep '^5'
显示数字开头为5的数字
seq 20 2 100 | grep '2$'
显示数字尾数为5的数字
seq 20 2 100 | grep -E '^5|2$'
这里是使用-E 是使用 拓展的版本

在这里插入图片描述

表示和数字和字母

先使用vi编辑器构造一个类似于此的文本
在这里插入图片描述

cat x.txt|grep -E '^[0-9]$' --color

grep -E '^[0-9]$' --color: 使用 grep 工具进行模式匹配。
-E: 启用扩展正则表达式。
'^[0-9]$': 正则表达式,匹配一个单独的数字(0 到 9)的行。
--color: 使匹配的文本显示为彩色。
seq 100 |grep -E '^[0-9][0-3]$' --color

选择第一位为[0-9]、第二位为[0-3]的数

seq 100|grep -E '(^[0-9]{2}$)|(^[0-9]{3})'


前一个 `^[0-9]{2}$` 是0-9的任意数字 {2}$ 匹配两次
后一个 `(^[0-9]{3})` 是0-9的任意数字 {3} 匹配三次

文字

先使用vi创建如下文本 file

I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

匹配前后是l、e 中间为任意字符的单词

匹配0个或多个空行 后面是love的字符

在这里插入图片描述

更多实例

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值