正则表达式(拓展)、grep(拓展)和sed

这篇具有很好参考价值的文章主要介绍了正则表达式(拓展)、grep(拓展)和sed。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、正则表达式

  egrep默认使用的是扩张正则

  表示次数

* 匹配前面字符任意数
0次或者1次
+ 1次或者多次
{n} 匹配n次
{m,n} 最少m次,最多n次
{,n} 匹配前面的字符最多n次
{n,} 匹配前面的字符最少n次

  表示分组

()分组 将多个字符捆绑在一起当作一个整体处理
\1、\2 后向引用
| 或者
a|b a或者b
C|cat C或cat
(C|c)at Cat或cat

二、grep

  格式:grep [选项]… 查找条件 目标文件

选项 功能
-color=auto 对匹配到的文本着色显示
-m 匹配#次后停止
grep -m 1 root /etc/passwd 多个匹配只取第一个
-v 显示不被pattern匹配到的行,即取反
grep -Ev '[[:space:]]*#|^$'

-i

忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行号
grep -c root /etc/passwd 统计匹配到的行号
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何模式,用途写脚本
-A after,后#行
grep -A3 root /etc/passwd 匹配到行后3行显示出来
-B before,前#行
-C context,前后各#行
-e 实现多个选项间的逻辑or关系
grep -e root -e bash /etc/passwd 包含root或者包含bash的行
grep -E root|bash /etc/passwd
-w 匹配整个单词
grep -w root /etc/passwd
useradd rooter
-E 使用ERE,相当于egrep
-F 不支持正则表达式,fgrep
-f file根据模式,处理两个文件相同内容 把第一个文件作为匹配条件
-r 递归目录,但不处理软链接
-R 递归目录,但处理软链接

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  统计当前主机的连接状态 

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  统计当前连接主机数

正则表达式(拓展)、grep(拓展)和sed,正则表达式

三、sed

  sed是行编辑器,和vi不同的是,sed是读取一行,处理一行,输出一行;而vi是将整个文件放到内存里打开。前者基本无视文件内容的大小,后者要注意自身内存是否能够涵盖住文件大小。

  格式:sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  3.1 基本用法

    sed [option]...            'script;script;...'                 [input  file...]
        选项                          自身脚本语法               支持标准输入管道

选项 功能
-n 不输出模式空间到屏幕,即不自动打印
-e 多点编辑[root@www data]#sed -n -e '/^r/p' /etc/passwd

-f

FILE从指定文件中读取编辑脚本
-r、-E 使用扩展正则表达式
-i.bak 备份文件并原处编辑

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  3.2 sed脚本语法格式

    语法:地址+命令

     1. 不给地址:给全文进行处理

     2.单地址

       #:指定的行  $:最后一行

      /pattern/:该此处模式所能匹配到的每一个行

    3.地址范围

      #,#:从#行到第#行。举例:3,6代表从第3行到第6行

      #,+#:从#行到第+#行。举例:3,+4代表从第3行到第7行

    4.步行:~

      1~2  奇数步

      2~2  偶数步

命令 注释
p 打印当前模式空间内容,追加到默认输出之后
Ip 忽略大小写输出
d 删除模式空间匹配的行,并立即启动下一轮循环
a [\text]在指定行后面追加文本,支持使用\n实现多行追加
i [\text]在行前面插入文本
c [\text]替换行为单行文本或多行文本
w file保存模式匹配的行至指定文件
r file读取指定文件的文本至模式空间中匹配到的行号
= 为模式空间的行打印行号
! 模式空间中匹配行取反处理
q 结束或退出sed

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  另外它还支持正则表达式

    自动打印需要打印否则会全部打印,如图所示 正则表达式(拓展)、grep(拓展)和sed,正则表达式

    正确结果应该如下图所示

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

    匹配两个正则表达式的行

      基本格式: '/表达式1/,/表达式2/p'  文件名

正则表达式(拓展)、grep(拓展)和sed,正则表达式

    匹配方式

  1.       先开始找b开头一直找到f开头
  2.       然后再重新找b开头,一找到f开头,没有f开头就全显示
  3.       重复循环

    奇偶数表示

正则表达式(拓展)、grep(拓展)和sed,正则表达式

    选项-d:删除

    修改文件内容,常常用于修改配置文件

    -i和-i.bak的区别

      -i:修改文件

      -i.bak:修改文件前先备份

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

    选项-a:追加 

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  3.3 搜索替代

    s/pattern/string/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###
    替换修饰符:
      g 行内全局替换
      p 显示替换成功的行
      w   /PATH/FILE 将替换成功的行保存至文件中
      I,i   忽略大小写

    内容较长就不展示了

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式

    正则表达式(拓展)、grep(拓展)和sed,正则表达式

    提取版本号

[root@localhost /]#cat 1.txt | grep -e "[0-9]\+\."
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar

[root@localhost /]#cat 1.txt |sed -r 's/.*-(.*)\.jar/\1/'
1.9.7
1.9.7
2.7.7
3.4
1.0
0.7.6
5.0.4
1.9.5
1.64
1.46
1.64
2.5.5

  3.4 变量

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  3.5 改配置文件

正则表达式(拓展)、grep(拓展)和sed,正则表达式

  3.6 修改网卡名

正则表达式(拓展)、grep(拓展)和sed,正则表达式

正则表达式(拓展)、grep(拓展)和sed,正则表达式文章来源地址https://www.toymoban.com/news/detail-827233.html

到了这里,关于正则表达式(拓展)、grep(拓展)和sed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux Grep 正则表达式

    grep是Linux中用于文本处理的最有用和功能最强大的命令之一。grep在一个或多个输入文件中搜索与正则表达式匹配的行,并将每条匹配的行写入到标准输出 正则表达式是与一组字符串匹配的模式。模式由运算符,文字字符和元字符组成,它们具有特殊的含义。GNU grep支持三种正

    2024年02月04日
    浏览(32)
  • SED正则表达式中[方括号]的特殊处理

    今天被这个方括号懵晕了,特此记录 例如: 去除输入字符串“1[2.3]4[ab,c]”中的所有方括号和逗号: $ echo \\\"1[2.3]4[ab,c]\\\"|sed -e \\\"s/[,][]//g\\\" 1[2.3]4[ab,c]   It doesn\\\'t work! 原因:Regular Expressions The right-square-bracket ( \\\']\\\' ) shall lose its special meaning and represent itself in a bracket expression if it oc

    2024年02月14日
    浏览(31)
  • linux 正则表达式1和grep

    目录 一、正则表达式 二、元字符 三、次数符号 四、位置锚定 五、实验                             一、正则表达式 通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。 分类: 1. 基本正则表达式 2.扩展正则表达式 二、元字符 元字符: .   匹配任意单

    2024年02月08日
    浏览(27)
  • sed中使用正则表达式进行替换以及注意事项

    sed中使用正则表达式进行替换的时候,一定要注意,有些特殊字符在使用时要转义,目前发现的有: 用于分组的小括号:(),在使用时要用进行转义,但是匹配字符串中真正的小括号时,无需转义; 表示前面的表达式出现次数的{},也要转义; 表示前面的表达式出现1次或多

    2023年04月22日
    浏览(32)
  • shell之正则表达式及三剑客grep命令

    什么是正则表达式? 正则表达式是一种描述字符串匹配规则的重要工具 1、正则表达式定义: 正则表达式,又称正规表达式、常规表达式 使用字符串描述、匹配一系列符合某个规则的字符串 普通字符: 大小写字母、数字、标点符号及一些其它符号 元字符: 在正则表达式中具

    2024年02月12日
    浏览(31)
  • Linux学习之正则表达式元字符和grep命令

    cat /etc/redhat-release 看到操作系统的版本是 CentOS Linux release 7.6.1810 (Core) , uname -r 可以看到内核版本是 3.10.0-957.21.3.el7.x86_64 。 正则表达式是一种搜索字符串的模式,通俗点理解,也就是普通字符和元字符共同组成的字符集合匹配模式。正则表达式的主要作用是文本搜索和字符

    2024年02月14日
    浏览(37)
  • Linux:shell脚本:基础使用(4)《正则表达式-grep工具》

    正则表达式定义:         使用单个字符串来描述,匹配一系列符合某个句法规则的字符串 正则表达式的组成:         普通字符串: 大小写字母,数字,标点符号及一些其他符号         元字符:在正则表达式中具有特殊意义的专用字符 正则表达式不能单独使用,需要配

    2024年02月12日
    浏览(27)
  • Linux系统三剑客之grep和正则表达式的介绍(一)

    1.正则表达式 目录 1.正则表达式 1.什么是正则表达式 ? 2.正则表达式的使用场景 3.正则表达式字符表示 4.它们之间的区别 2.grep命令 作用: 语法: 说明: 选项:options 重点 实例 3.后面的下次再更新。  1.什么是正则表达式 ? 一个正则表达式就是描述了一个字符串集合的方式

    2024年01月18日
    浏览(43)
  • linux | sort、uniq、history、xargs、grep 正则表达式(不深入)

    1.正则表达式 sort命令 #把内容读到内存,然后以行为单位进行排序并把结果输出到stdout(因为直接把排序结果输出,所以可以重定向),但是并不修改源文件内容。 参考如下 uniq命令 #流程和sort类似,也是把相邻的相同行去掉,最后输出。注意间隔的相同行无法去除。 如何把

    2024年02月16日
    浏览(29)
  • 小白到运维工程师自学之路 第四十九集 (正则表达式之grep)

    1、正则表达式(Regular Expression,简称为RegExp或Regex)是一种用于描述、匹配和操作文本的字符串模式的表达式。它提供了一种强大而灵活的方式来进行字符串的搜索、替换、提取和验证操作。 2、正则表达式可以用于各种编程语言和应用程序中,包括文本编辑器、命令行工具

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包