广告
返回顶部
首页 > 资讯 > 数据库 >shell正则表达式
  • 947
分享到

shell正则表达式

2024-04-02 19:04:59 947人浏览 泡泡鱼
摘要

     shell脚本扩展一 正确表达式正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。1. 支持的命令:grep、vim、fi

     shell脚本扩展

一 正确表达式

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

1. 支持的命令:

grep、vim、find、awk、sed等。

1、.代表任意单个字符, 如:/l..e/与包含一个l,后跟两个字符,然后跟一个e的行相匹配 

shell正则表达式

检索wang.txt文件中匹配s字符的。

2、^代表行的开始。 ^love 如:与所有love开头的行匹配 

shell正则表达式

检索wang.txt文件中以N开头的。

3、$代表行的结束。love$ 如:与所有love结尾的行匹配 

那么‘^$’ 就表示空行

shell正则表达式

通配符

shell正则表达式

检索wang.txt文件中匹配小写字母a到z之间的。

注意:

[abc]表示匹配单个字符a或b或c

[123]表示匹配单个字符1或2或3

[A-Z]表示匹配大写字母A-Z之间一个

[^a]表示取反,匹配除去小写字母a的。

5、* 用于修饰前导字符,表示前导字符出现0次或任意多次

shell正则表达式

检索wang.txt文件中出现0次或多次T的

6、\? 用于修饰前导字符,表示前导字符出现0或1次


shell正则表达式

7、\+ 用于修饰前导字符,表示前导字符出现1或多次

shell正则表达式

8、\{n,m\}  用于修饰前导字符,表示前导字符出现n至m次 (n和m都是整数,且n<m)

 表示前导字符出现n至m次;

 n/m为整数,并且m>n;

 其他形式:

\{n\}连续的n个前导字符;

\{n,\}连续的至少n个前导字符;


shell正则表达式

检索wang.txt文件中出现2至4个n的

9、\  用于转义紧跟其后的单个特殊字符,使该特殊字符成为普通字符

shell正则表达式

检索wang.txt文件中含有.的。

10、|表示或  如: a|b|c 匹配abc。如:grep|sed匹配grepsed

shell正则表达式

检索wang.txt文件中含有a或b的。

11、(),将部分内容合成一个单位组,比如 要搜索 glad 或 Good 可以如下 'g(la|oo)d'

shell正则表达式

二、grep命令的用法

参数:

1. -A NUM,--after-context=NUM   除了列出符合行之外,并且列出后NUM行。

shell正则表达式

列出chai.txt文件中Tom行与后俩行

2. -B NUM,--before-context=NUM  与 -A NUM 相对,但这此参数是显示除符合行之外并显示在它之前的NUM行。

shell正则表达式

列出chai.txt文件中Tom行与前俩行。

3、 -C [NUM], -NUM, --context[=NUM]  列出符合行之外并列出上下各NUM行,默认值是2。

shell正则表达式

列出chai.txt文件中Tom行与前后俩行。

4、 -c, --count  不显示符合样式行,只显示符合的总行数。若再加上-v,--invert-match,参数显示不符合的总行数

shell正则表达式

列出chai.txt文件中含有Tom的行数;

列出chai.txt文件中不含有Tom的行数。

5、-i,--ignore-case 忽略大小写差别

shell正则表达式

列出chai.txt文件中含有tom(大小写)的行。

6、-n,--line-number 在匹配的行前面打印行号

shell正则表达式

列出chai.txt文件中含有tom(大小写)的行,并且打印出行号。

7、-v,--revert-match  反检索,只显示不匹配的行

shell正则表达式

列出chai.txt文件中不含有tom的行。

8、精确匹配:

例如在抽取字符串“ 48”,返回结果包含诸如484和483等包含“48”的其他字符串,实际上应精确抽取只包含48的各行。

shell正则表达式

精确列出chai.txt文件中含有30的行。

9、-s 不显示不存在或无匹配文本的错误信

shell正则表达式

xin.txt文件不存在,检索时候提示搜索不到的错误信息,

如果不要错误信息提示,则加上-s。

三、sed命令的用法

1sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

2把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

3文件内容并没有改变,除非你使用重定向存储输出。

1.替换: s命令
  1.1 基本用法 

shell正则表达式

chai.txt中The替换成chai,输出到aaa.txt文件中。

sed 替换命令

/../../分隔符(可以用其他符合代替)

The 搜索的字符串

chai  替换的字符串

<chai.txt>  搜索的文件  

aaa.txt   输出到的文件

1.2 用 & 表示匹配的字符串

有时可能会想在匹配到的字符串周围或附近加上一些字符 .
 如: sed 's/abc/(abc)/' <old >new

shell正则表达式

sed 默认只替换搜索字符串的第一次出现 , 利用 /g 可以替换搜索字符串所有

如果需要对同一文件或行作多次修改,可以使用 "-e" 选项

3.删除行:d命令

从某文件中删除包含 "how" 的所有行

shell正则表达式

将passwd内容显示并打印行号,同时删除2到5行。

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号。

4.增加行:a命令(在指定的行后新增)或i命令(在指定的行前新增)

a的后面可以接字符串,而这些字符串会在新的一行出现

在/etc/passwd的第二行后增加“XXXXX”字样的新行

shell正则表达式

将passwd内容显示并打印行号,同时在第二行后新增hello。

shell正则表达式

将passwd内容显示并打印行号,同时在第二行前新增hello。

如果要同时新增多行,则每行之间要用反斜杠\来进行新行的添加

shell正则表达式

5、取代行:c命令

c的后面可以接字符串,这些字符串可以取代n1,n2之间的行

取代行

shell正则表达式

将passwd内容显示并打印行号,同时取代2到5行间内容。

6、打印:p命令 

sed '/north/p' datafile 默认输出所有行,找到north的行重复打印 

shell正则表达式

仅列出passwd文件中的第57行内容。

sed -i选项可以直接修改文件中的内容

shell正则表达式

6.扩展:

调用sed有三种方式:

l 在命令行键入命令

l 将sed命令插入脚本文件,然后调用sed

l 将sed命令插入脚本文件,并使sed脚本可执行。

A、 使用sed命令行格式为:

sed [选项] sed命令 输入文件。

记住在命令行使用sed命令时,实际命令要加单引号。sed也允许加双引号。

 

B、使用sed脚本文件,格式为:

sed [选项] -f sed脚本文件  输入文件

 

C、要使用第一行具有sed命令解释器的sed脚本文件,其格式为:

sed脚本文件 [选项]  输入文件

shell正则表达式

第一行是sed命令解释行。脚本在这一行查找sed以运行命令,这里定位在/bin。

第二行以/company/开始,这是附加操作起始位置。a\通知sed

是一个附加操作,首先应插入二个新行。

第三、四行是附加操作要加入到拷贝的实际文本。

shell正则表达式






您可能感兴趣的文档:

--结束END--

本文标题: shell正则表达式

本文链接: https://www.lsjlt.com/news/52094.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • shell正则表达式
         Shell脚本扩展一 正确表达式正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。1. 支持的命令:grep、vim、fi...
    99+
    2022-10-18
  • python3 shell 正则表达式
    突然自己悟到的一点小技巧,先写在这里,以免以后又忘记。有个字符串 s='''style="border-top:1px dotted #DDD;text-align:left;padding-left:5px;"><a href...
    99+
    2023-01-31
    正则表达式 shell
  • Shell正则表达式怎么用
    这篇文章将为大家详细讲解有关Shell正则表达式怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、正则表达式是什么?正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、...
    99+
    2023-06-09
  • Shell中正则表达式怎么用
    这篇文章主要介绍Shell中正则表达式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正则表达式    正则表达式:编写处理字符串的程序或网页时,用于描述查找符合某些复杂规则的字符串的工具。换...
    99+
    2023-06-06
  • Shell正则表达式学习笔记
    正规表示法(或称为常规表示法)是透过一些特殊字符的排列,用以搜寻/取代/删除一列或多列文字字符串, 简单的说,正规表示法就是用在字符串的处理上面的一项『表示式』。正规表示法并不是一个工具程序, 而是一个字符...
    99+
    2022-06-04
    学习笔记 正则表达式 Shell
  • 正则表达式
    2019-01-16 作用 :     路由匹配,表单信息的验证  (字符串匹配) 信息提取(在大段文本中提取信息,爬虫) 字符串的提取和校验 []在中括号内匹配任意项  [^]不匹配中括号中的任意一项    [0-9]  0123......
    99+
    2023-01-30
    正则表达式
  • linux shell 路径截取正则表达式
    最近写脚本,需要对脚本中函数传递的路径参数进行截取,发现了以下比较好用的方法,记录下: file=/dir1/dir2/dir3/my.file.txt 我们可以用${ }分别替换获得不同的值: ${f...
    99+
    2022-06-04
    路径 正则表达式 linux
  • Shell正则表达式验证IP地址
    本机多个IP ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}' 首先,先用这个来着 CheckIPAddress() ...
    99+
    2022-06-04
    地址 正则表达式 Shell
  • shell脚本中的正则表达式详解
    正则表达式的概念及特点:   正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”, 这个“规则字符串”用来表达对字符...
    99+
    2022-11-12
  • 怎么在shell中使用正则表达式
    怎么在shell中使用正则表达式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。正则表达式概述正则表达式是一种定义的规则,Linux工具可以用它来过滤文本。基础正则表达式纯文...
    99+
    2023-06-09
  • Shell—正则表达式(grep命令、sed工具)
    正则表达式是一种用于匹配、查找和替换文本的强大工具。在Shell中,可以使用grep命令和sed工具来应用正则表达式。1. grep...
    99+
    2023-09-22
    Shell
  • 详解Linux--shell脚本之正则表达式
    一、正则表达式的概念及特点: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。规定一...
    99+
    2022-06-04
    详解 脚本 正则表达式
  • shell中正则表达式的示例分析
    这篇文章给大家分享的是有关shell中正则表达式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正则表达式匹配中文字符的正则表达式:[u4e00-u9fa5]评注:匹配中...
    99+
    2022-10-19
  • Shell if中的正则表达式怎么用
    这篇文章主要介绍Shell if中的正则表达式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!由于工作需要对用户提交的数据进行验证,这是一个简单的日期正则验证实例,有需要了解的同学可参考。shell中的if语句需...
    99+
    2023-06-09
  • qt 正则表达式
      以上是正则表达式的格式说明 以下是自己写的正则表达式  22-25行 是一种设置正则表达式的方式, 29-34行 : 29行 new一个正则表达式的过滤器对象 30行 正则表达式 的过滤格式 这个格式是0-321的任意数字都可以输入...
    99+
    2023-09-12
    qt
  • java正则表达式
    目录 一、概念 二、正则表达式语法 三、捕获组 四、Pattern类与Matcher类 1.matches( ) 2.split( ) 3.find( ) 4.group 5.start( )和end( ) 6.replace替换 7.re...
    99+
    2023-09-21
    java 正则表达式
  • python 正则表达式
    正则表达式的作用:用来匹配字符串 一、字符串方法 字符串提供的方法是完全匹配,不能进行模糊匹配 s = 'hello world' # 字符串提供的方法是完全匹配,不能进行模糊匹配 print(s.find('ll')) # 2 ...
    99+
    2023-01-30
    正则表达式 python
  • ORACLE 正则表达式
    ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的...
    99+
    2022-10-18
  • Python_正则表达式
    正则表达式: 匹配字符串   re.compile():用于编译正则表达式,生成一个正则表达式对象,供 match() 和 search() 两个函数使用,一般建议使用这种编译方式 1 import re 2 str = 'abc1de...
    99+
    2023-01-30
    正则表达式
  • python3-正则表达式
    import re print(re.search("xyx","qxyasdfxuyxyxaqd"))#寻找 print(re.match("xya","qxyasdfxuyxyxaqd"))#从头匹配,失败返回None print(re...
    99+
    2023-01-31
    正则表达式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作