sed正则表达式

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

很多linux命令支持正则表达式,sed也不例外。

  行开始 ( ^ )

插入符^匹配一行的开始。比如说,匹配以103打头的行:

sed -n '/^103/p' data.txt

注意,插入符只有在表达式的首位时,才表示行首匹配。 

行尾( $) 

美元符$匹配行尾。比如说,输出以g结尾的行:

 sed -n '/g$/p' data.txt

单字符 (.)

句点(.)匹配除行字符结尾的任何单个字符。一个点匹配一个字符,两个点匹配两个,三个点匹配三个,以此类推。

比如,把L及随后的一个字符替换为Lee:

sed -n 's/L./Lee/p' data.txt

 sed正则表达式,Linux,正则表达式

 字符出现零或多次(*)

星号(*)表示它之前的字符出现零或多次。比如说:’1*’表示匹配零个或多个连续的1.

 比如说,有这样一个log文件,其内容如下:

log: Input Validated
log:
log:  testing resumed
log:
log:output created

 假设你只关注有内容的行,那么可以这样做:

sed -n '/log: *./ p' log.txt

注意星号后面有一个句点,这是必要的。否则它会输出所有行。 

字符出现一次或多次(\+) 

元字符“\+”匹配它之前的字符,它出现一或多次。比如,在上面的log文件里,匹配有log:后跟空格的行:

sed -n '/log: \+/ p' log.txt

字符出现零或一次 (\?) 

元字符(\?) 表示匹配它之前的字符,出现零或一次。

sed -n '/log: \?/ p' log.txt

元字符转义 (\) 

如果需要匹配包含元字符的内容(比如说星号、句点),那么,需要对元字符进行转义。

sed -n '/127\.0\.0\.1/ p' /etc/hosts

字符集匹配 ([0-9])

字符集用方括号表示,它用于匹配集合里提及的元素。比如说,匹配包含2、3或4的行:

sed -n '/[234]/ p' data.txt

在方括号里,可以用连接符-来表示范围。比如  [0123456789]等价于 [0-9],它还可用于字符集,比如说[a-z],[A-Z] 。

sed -n '/[2-4]/ p' data.txt

 逻辑或(|) 

管道符(|) 表示逻辑或,“subexpression1|subexpression2”匹配subexpression1或subexpression2。

sed -n '/101\|102/ p' data.txt

 注意管道符是转义的。

准确匹配m次出现({m}) 

 假设有一个numbers.txt文件,其内容如下:

1
12
123
1234
12345
123456
  • 打印包含阿拉伯数字字符的行:
sed -n '/[0-9]/ p' numbers.txt
  •  打印五位数
sed -n '/^[0-9]\{5\}$/ p' numbers.txt

指定出现次数的范围({m,n}) 

  • 打印3到五位数
sed -n '/^[0-9]\{3,5\}$/ p' numbers.txt

范围可以只指定下限,或上限,比如{m,}或{,n}

sed -n '/^[0-9]\{3,\}$/ p' numbers.txt
sed -n '/^[0-9]\{,5\}$/ p' numbers.txt

单词边界 (\b)

元字符(\b)用于匹配单词边界。它匹配单词间的字符。

sed -n '/Zhao\b/ p' data.txt

反向引用(\n)

这里(\n) 中的n是数值。反向引用可以提取表达式里的内容供后面使用。

比如要"2022 2021 2023"按次序排列,其他就可以使用反向引用中\2 \1 \3来排序,排列的结果为"2021 2022 2023"文章来源地址https://www.toymoban.com/news/detail-699619.html

echo -e "2022 2021 2023" | sed -e "s/\(.*\) \(.*\) \(.*\)/\2 \1 \3/g"

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

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

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

相关文章

  • sed中使用正则表达式进行替换以及注意事项

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

    2023年04月22日
    浏览(44)
  • 正则表达式、grep过滤工具、sed基本用法、sed基本操作指令、sed应用案例

    1.1 问题 本案例要求熟悉正则表达式的编写,完成以下任务: 利用grep或egrep工具练习正则表达式的基本用法 1.2 方案 表-1 基本正则列表 表-2 扩展正则列表 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:正则表达式匹配练习 1)基本正则表达式 测试 ^ $ [] [^] 测试 .

    2024年01月24日
    浏览(86)
  • Linux - 正则表达式

    目录 1. 正则表达式(regular expression) 1.1 元字符 1.1.1  ^ 表示以什么开头 1.1.2  $ 表示以什么结尾 1.1.3   \\\" . \\\"表示任意单个字符 1.1.4  *表示前面的字符出现0次或者任意次  .*表示所有的字符 1.1.5  |表示或者 1.1.6 ^$ 表示空行 1.1.7  +表示前面字符出现1次以上 1.2  方括号表达式

    2023年04月08日
    浏览(31)
  • linux 正则表达式

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

    2024年02月07日
    浏览(41)
  • Linux:正则表达式

    目录 一、grep和元字符         1.1、grep         1.2、元字符 二、正则匹配          2.1、查找特定的字符          2.2、使用[]来查找集合字符         要查找short和shirt时         要查找包含重复或单个字符oo时          查找oo前面不是w的字符串         2.3、查找行

    2024年02月02日
    浏览(35)
  • Linux Shell :正则表达式

    先来看一句 Shell 代码: dpkg --list : dpkg 是 Debian 系列 Linux 发行版(如 Ubuntu)的包管理工具。 --list 选项用于列出所有已安装的软件包。 | :这是一个管道符号,用于将前一个命令的输出作为后一个命令的输入。在这里, dpkg --list 的输出被直接传递给 grep 命令。 grep -E -o \\\'cu

    2024年02月08日
    浏览(43)
  • Linux 实训4 正则表达式

    将实训4              :正则表达式的完成情况提交实验报告。 创建并输入文本文件 保存退出: Esc+: wq   设置语系为C,代码:#export LANG=C ^匹配行首 ①查看以字符“a”开头的行。 ②查看以字符串“abc\\\"开头的行。 ¥匹配行尾 ①查看以字符串“33”结尾的行。 ②查看以

    2024年02月08日
    浏览(34)
  • Linux中正则表达式等

    grep命令:主要作用就是过滤查找文本内容 常用的选项有: -m 数字:匹配几次之后停止,按行匹配,不是按字符个数,例如 -v:取反 例如: -n:显示匹配的行号 例如: -c:仅显示匹配的行数,不显示匹配内容 例如: -o:仅显示匹配的内容 例如: -q:静默模式,只输出,无结果 例如:

    2024年02月06日
    浏览(37)
  • Linux Grep 正则表达式

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

    2024年02月04日
    浏览(46)
  • Linux文本处理工具和正则表达式

    Linux文本处理工具和正则表达式 cat 最常用的文件查看命令;当不指明文件或者文件名为一杠’-\\\'时,读取标准输入。 more 默认将多行文本满屏输出,只允许向文本末尾翻页(空格键满屏翻页;回车键单行翻页),阅读到文末自动退出。 用法 一般使用管道传给more来阅读内容超过

    2024年02月13日
    浏览(71)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包