0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

shell脚本基础:正则表达式sed

FPGA学姐 来源:FPGA学姐 2023-05-29 09:30 次阅读

在字符串处理中,最重要的就是查找和替换。

sed [选项] 处理脚本 输入文件...

02bf8f28-fd67-11ed-90ce-dac502259ad0.png

-r是用于在sed命令中使用扩展正则表达式的选项。如果没有指定选项,sed命令会默认将基本正则表达式视为正则表达式。

-e选项用于为sed命令设置要执行的处理脚本。如果没有指定任何选项,sed命令会将第1个非选项的参数作为处理脚本来运行。例如指定多个处理脚本

$ sed -e 's/:/,/g' -e 's/bin//g' /etc/passwd
root,x,0,0,root,/root,//bash
,x,1,1,,/,/s/nologin
daemon,x,2,2,daemon,/s,/s/nologin
adm,x,3,4,adm,/var/adm,/s/nologin
lp,x,4,7,lp,/var/spool/lpd,/s/nologin
sync,x,5,0,sync,/s,//sync
……以下省略……

-i选项的后面指定一个字符串参数,sed命令还会对编辑之前的原文件备份

例如将:(冒号)替换为_(下划线)

$sed's/:/_/g'/etc/passwd

在上面的示例中,处理脚本s/:/_/并没有使用地址。如果像这样省略了地址,则文件的全部内容都会成为处理对象。

02d35580-fd67-11ed-90ce-dac502259ad0.png

例如第2-4行作为命令的处理对象

$sed'2,4s/:/_/g'/etc/passwd

▼使用s命令将匹配到指定模式的内容删除

“替换后字符串”也可以是空字符串。这就相当于删除匹配到的部分,s命令末尾的标志是可以控制替换操作的符号,常用的主要是g和i。标志g表示对匹配到匹配模式的所有结果进行替换。i就代表匹配到的第一行。

如果不需要使用任何标志,则标志部分可以省略。此外,如果要同时使用多个标志,可以像ig或gi这样以任意的顺序指定多个标志。

使用/对/字符进行转义

$ sed 's//bin///usr/bin//g' /etc/passwd
root:x:0:0:root:/root:/usr/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
……

使用%作为分隔符

$ sed 's%/bin/%/usr/bin/%g' /etc/passwd
root:x:0:0:root:/root:/usr/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
……

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SED
    SED
    +关注

    关注

    0

    文章

    23

    浏览量

    27055
  • 字符串
    +关注

    关注

    1

    文章

    570

    浏览量

    20465
  • Shell
    +关注

    关注

    1

    文章

    363

    浏览量

    23256
  • 脚本
    +关注

    关注

    1

    文章

    385

    浏览量

    14810
  • 正则表达式
    +关注

    关注

    0

    文章

    26

    浏览量

    3470

原文标题:shell脚本基础(七)正则表达式sed

文章出处:【微信号:FPGA学姐,微信公众号:FPGA学姐】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是正则表达式正则表达式如何工作?哪些语法规则适用正则表达式

    正则表达式又称规则表达式(Regular Expression,在代码中常简写为 regex、regexp 或 RE),是一种用于匹配、查找、替换文本的强大工具。它能够以特定的模式匹配字符串,从而
    的头像 发表于 11-03 14:41 2715次阅读
    什么是<b class='flag-5'>正则表达式</b>?<b class='flag-5'>正则表达式</b>如何工作?哪些语法规则适用<b class='flag-5'>正则表达式</b>?

    shell正则表达式学习

    正则表达式在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多
    发表于 07-25 17:18

    总结linux脚本语法和正则表达式的应用

    每日学一点之linux脚本语法以及正则表达式基础
    发表于 11-08 09:23

    深入浅出boost正则表达式

    什么是正则表达式正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express. 如果您不知道什么是正则表达式,请看这篇文章:深入浅出之正则表达式
    发表于 09-08 18:09 9次下载

    PHP正则表达式

    PHP正则表达式,PHP建设必备的的工具,初学者简单易懂快速入门,高手进阶手册。
    发表于 04-18 10:46 0次下载

    精通正则表达式

    详细的快速正则表达式的查询电子书,简单而丰富
    发表于 05-16 18:04 5次下载

    关于java正则表达式的用法详解

    正则表达式 一个正则表达式是一个用于文本搜索的文本模式。换句话说,在文本中搜索出现的模式。例如,你可以用正则表达式搜索网页中的邮箱地址或超链接。 正则表达式示例 下面是一个简单的Jav
    发表于 09-27 14:24 0次下载

    快速入门IPv6和正则表达式

    对于日常开发中只接触IPv4,并没有深入研究过正则表达式的开发者,面对IPv6和正则表达式,容易产生畏惧心理,觉得是两座难以翻越的大山。本文通过一些表格整理对IPv6的表示方法,以及正则表达式的特殊符号进行了分类和说明,带领大家
    的头像 发表于 03-30 09:31 8887次阅读
    快速入门IPv6和<b class='flag-5'>正则表达式</b>

    Python正则表达式的学习指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化
    发表于 09-15 08:00 0次下载
    Python<b class='flag-5'>正则表达式</b>的学习指南

    Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化
    发表于 03-26 09:13 10次下载
    Python<b class='flag-5'>正则表达式</b>指南

    C语言如何使用正则表达式

    C语言的正则表达式规则,特此跟大家分享。
    的头像 发表于 03-16 08:41 4863次阅读

    python正则表达式中的常用函数

    编译正则表达式模式,返回一个正则对象的模式。(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率。)
    的头像 发表于 03-18 16:12 1754次阅读

    Linux入门之正则表达式

    正则表达式是用来表达字符串匹配模式的方法,利用正则表达式,可以让我们轻易地实现对目标字符串的**查找**、**删除**、**替换**等操作。 正则表达式并不复杂,它并不包含难以理
    的头像 发表于 05-12 15:31 821次阅读
    Linux入门之<b class='flag-5'>正则表达式</b>

    shell脚本基础:正则表达式grep

    在Linux上有许多命令可以使用正则表达式,其中最常见的是grep命令和sed命令。正则表达式有多种类型,每种类型中可以使用的元字符类型不同。最常见的是基本正则表达式和扩展
    的头像 发表于 05-29 09:29 1194次阅读
    <b class='flag-5'>shell</b><b class='flag-5'>脚本</b>基础:<b class='flag-5'>正则表达式</b>grep

    Python中的正则表达式

    哈喽大家好,我是了不起,今天给大家讲Python中的正则表达式 在Python中,正则表达式是一种强大的文本处理工具,它可以用来匹配、搜索、替换文本。正则表达式是一个特殊的字符序列,它可以描述一类
    的头像 发表于 06-21 16:52 945次阅读