我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在shell中使用正则表达式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在shell中使用正则表达式

怎么在shell中使用正则表达式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

正则表达式概述

正则表达式是一种定义的规则,Linux工具可以用它来过滤文本。

基础正则表达式

纯文本

[root@node1 ~]# echo "this is a cat" | sed -n '/cat/p'this is a cat[root@node1 ~]# echo "this is a cat" | gawk '/cat/{print $0}'this is a cat

 正则表达式的匹配非常挑剔,尤其需要记住,正则表达式区分大小写。

特殊字符

正则表达式识别的特殊字符包括:

.*[]^${}\+?|()

如果要使用某个特殊字符作为文本字符,就必须转义,一般用(\)来转义。

[root@node1 ~]# echo "this is a $" | sed -n '/\$/p'this is a $

锚字符

有两个特殊字符可以用来将模式锁定在数据流的行首或行尾

脱字符(^)定义从数据流中文本行的行首开始的模式。

美元符($)定义了行尾锚点。

[root@node1 ~]# echo "this is a cat" | sed -n '/^this/p'this is a cat[root@node1 ~]# echo "this is a cat" | sed -n '/cat$/p'this is a cat

在一些情况下可以组合使用这两个命令

比如查找只含有特定文本的行

[root@node1 ljy]# more test.txt  this is a dogwhathowthis is a catis a dog[root@node1 ljy]# sed -n '/^is a dog$/p' test.txtis a dog[root@node

两个锚点组合起来,可以直接过滤空白行

[root@node1 ljy]# more test.txt  this is a dogwhathow this is a catis a dog[root@node1 ljy]# sed '/^$/d' test.txt this is a dogwhathowthis is a catis a dog

点号字符

点号用来匹配除换行符外的任意单个字符,他必须匹配一个字符。

[root@node1 ljy]# more test.txtthis is a dogwhathowthis is a catis a dogat[root@node1 ljy]# sed -n '/.at/p' test.txtwhatthis is a cat

字符组

限定待匹配的具体字符,使用字符组。使用方括号来定义一个字符组。

[root@node1 ljy]# more test.txtthis is a dogthis is a Dogthis is a DoGthis is a cat[root@node1 ljy]# sed -n '/[dD]og/p' test.txtthis is a dogthis is a Dog[root@node1 ljy]# sed -n '/[dD]o[gG]/p' test.txt this is a dogthis is a Dogthis is a DoG

排除型字符组

要排除某些特定的元素,要在字符组前面加个脱字符。

[root@node1 ljy]# sed -n '/[dD]o[gG]/p' test.txt this is a dogthis is a Dogthis is a DoG[root@node1 ljy]# sed -n '/[^D]og/p' test.txt this is a dog

区间

正则表达式会包括此区间内的任意字符。

[root@node1 ljy]# more test.txt1231231231121222222412345341613vsdvsqwer123441231234534211444444[root@node1 ljy]# sed -n '/^[0-9][0-9][0-9][0-9][0-9]$/p' test.txt1234534211

拓展正则表达式

问号

问号表明前面的字符出现0次或者1次,仅限于此。

[root@node1 ljy]# echo "bat" | gawk '/ba?t/{print $0}' bat[root@node1 ljy]# echo "baat" | gawk '/ba?t/{print $0}'[root@node1 ljy]# echo "bt" | gawk '/ba?t/{print $0}' bt

可以将问号和字符组一起使用

[root@node1 ljy]# echo "bt" | gawk '/b[ae]?t/{print $0}'bt[root@node1 ljy]# echo "bat" | gawk '/b[ae]?t/{print $0}'bat[root@node1 ljy]# echo "bet" | gawk '/b[ae]?t/{print $0}'bet[root@node1 ljy]# echo "baat" | gawk '/b[ae]?t/{print $0}'

加号

加号表明前面的字符可以出现一次或多次,但至少是1次。

[root@node1 ljy]# echo "baat" | gawk '/b[ae]+t/{print $0}'baat[root@node1 ljy]# echo "bt" | gawk '/b[ae]+t/{print $0}' [root@node1 ljy]# echo "bt" | gawk '/ba+t/{print $0}' [root@node1 ljy]# echo "bat" | gawk '/ba+t/{print $0}'bat[root@node1 ljy]# echo "baat" | gawk '/ba+t/{print $0}'baat

花括号

ERE中的花括号允许你为可重复的正则表达式规定上下限。

m,n最少出现m此,最多出现n次。

[root@node1 ljy]# echo "baat" | gawk '/b[ae]{1,2}t/{print $0}' baat[root@node1 ljy]# echo "baaat" | gawk '/b[ae]{1,2}t/{print $0}'

管道符号

用逻辑or的方式指定正则表达式规则,其中一个条件符合要就即可。

表达式分组

正则表达式分组也可以用圆括号进行分组。

[root@node1 ljy]# echo "bat" | gawk '/b(a|e)t/{print $0}'  bat[root@node1 ljy]# echo "baat" | gawk '/b(a|e)t/{print $0}'[root@node1 ljy]# echo "bet" | gawk '/b(a|e)t/{print $0}' bet

关于怎么在shell中使用正则表达式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在shell中使用正则表达式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在shell中使用正则表达式

怎么在shell中使用正则表达式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。正则表达式概述正则表达式是一种定义的规则,Linux工具可以用它来过滤文本。基础正则表达式纯文
2023-06-09

Shell中正则表达式怎么用

这篇文章主要介绍Shell中正则表达式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正则表达式 正则表达式:编写处理字符串的程序或网页时,用于描述查找符合某些复杂规则的字符串的工具。换句话说,就是文本规则
2023-06-06

Shell正则表达式怎么用

这篇文章将为大家详细讲解有关Shell正则表达式怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、正则表达式是什么?正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、
2023-06-09

在python正则表达式中是怎样正确使用正则表达式

这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python
2023-06-17

在VB中怎么使用正则表达式

这篇文章主要为大家展示了“在VB中怎么使用正则表达式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在VB中怎么使用正则表达式”这篇文章吧。1. 启动 Microsoft Visual Basic
2023-06-17

如何在shell脚本中使用正则表达式

这篇文章将为大家详细讲解有关如何在shell脚本中使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。正则表达式的概念及特点:  正则表达式是对字符串操作的一种逻辑公式,就是用事先定
2023-06-20

Shell if中的正则表达式怎么用

这篇文章主要介绍Shell if中的正则表达式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!由于工作需要对用户提交的数据进行验证,这是一个简单的日期正则验证实例,有需要了解的同学可参考。shell中的if语句需
2023-06-09

怎么在Java中使用正则表达式API

本文小编为大家详细介绍“怎么在Java中使用正则表达式API”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在Java中使用正则表达式API”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言:在正则表达式的世
2023-07-02

Shell正则表达式中grep、sed、awk怎么用

这篇文章主要介绍了Shell正则表达式中grep、sed、awk怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先先复制一段范例:代码如下:# vi regular_e
2023-06-09

Shell if中的正则表达式使用详解

由于工作需要对用户提交的数据进行验证,这是一个简单的日期正则验证实例,有需要了解的同学可参考。shell中的if语句需要做一个正则判断,查了一下语法记录之。DATEPATTERN="^[0-9]{4}-[0-9]{1,2}-[0-9]{1,
2022-06-04

js 怎么使用正则表达式

在 JavaScript 中,可以使用正则表达式的两种方式:使用 RegExp 对象或者使用正则表达式字面量。1. 使用 RegExp 对象:```javascriptvar pattern = new RegExp("pattern");
2023-09-20

C++怎么使用正则表达式

今天小编给大家分享一下C++怎么使用正则表达式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。目正则表达式正则表达式(regu
2023-06-30

Ruby正则表达式怎么使用

这篇文章主要介绍了Ruby正则表达式怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Ruby正则表达式怎么使用文章都会有所收获,下面我们一起来看看吧。Ruby 正则表达式正则表达式是一种特殊序列的字符,它
2023-07-06

pcre正则表达式怎么使用

PCRE正则表达式的使用可以分为两个步骤:编译和匹配。1. 编译正则表达式:可以使用`preg_compile()`函数来编译一个正则表达式。例如:```php$pattern = '/\b[A-Za-z]+\b/';$regex = pr
2023-09-29

正则表达式中问号怎么使用

在正则表达式中,问号有两种不同的用法:1. 非贪婪匹配:在量词后面加上问号,表示尽可能少地匹配。例如,"/a+?/"将匹配一个或多个连续的"a"字母,并且只匹配尽可能少的"a"。2. 零次或一次匹配:在某个字符或字符组之后加上问号,表示该字
2023-08-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录