linux中结合sed和grep的全局文本替换示例

这篇具有很好参考价值的文章主要介绍了linux中结合sed和grep的全局文本替换示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

基本语法

实战例

注意点


基本语法

sed -i "s/oldstring/newstring/g" `grep oldstring -rl path` 

        -i 表示inplace edit,就地修改文件
        -r 表示递归式地搜索子目录
        -l 表示输出匹配的文件名

        oldstring:原字符串

        newstring:要替换成为的新字符串

        path:路径,可以是一个文件路径,也可以是一个目录路径

实战例

        在myfolder有两组字符串需要替换:

        (1) RTSEL(2'b01) --> RTSEL(2'b00);

        (2) WTSEL(2'b01) --> WTSEL(2'b00);

        首先,查询一下RTSEL的存在状况:

>> grep -rn "RTSEL" myfolder

myfolder/APERTURE_DATA_PREPARE.sv:73:    .RTSEL(2'b01),
myfolder/APERTURE_DATA_PREPARE.sv:109:    .RTSEL(2'b01),
myfolder/APERTURE_DATA_PREPARE.sv:145:    .RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:74:    .RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:111:    .RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:148:    .RTSEL(2'b01),
myfolder/CHROMA_DATA_PREPARE.sv:185:    .RTSEL(2'b01),
myfolder/LUMA_GEN.sv:85:    .RTSEL(2'b01),
myfolder/LUMA_GEN.sv:122:    .RTSEL(2'b01),
myfolder/LUMA_GEN.sv:159:    .RTSEL(2'b01),
myfolder/LUMA_GEN.sv:196:    .RTSEL(2'b01),         

         然后,执行sed + grep命令进行替换,并再次用grep搜索确认:

>> sed -i "s/WTSEL(2'b01)/WTSEL(2'b00)/g" `grep "WTSEL(2'b01)" -rl myfolder`

>> grep -rn "RTSEL" myfolder

myfolder/APERTURE_DATA_PREPARE.sv:73:    .RTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:109:    .RTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:145:    .RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:74:    .RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:111:    .RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:148:    .RTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:185:    .RTSEL(2'b00),
myfolder/LUMA_GEN.sv:85:    .RTSEL(2'b00),
myfolder/LUMA_GEN.sv:122:    .RTSEL(2'b00),
myfolder/LUMA_GEN.sv:159:    .RTSEL(2'b00),
myfolder/LUMA_GEN.sv:196:    .RTSEL(2'b00),

        对WTSEL也依葫芦画瓢:

 >> sed -i "s/WTSEL(2'b01)/WTSEL(2'b00)/g" `grep "WTSEL(2'b01)" -rl myfolder`
>> grep -rn "WTSEL" myfolder
myfolder/APERTURE_DATA_PREPARE.sv:74:    .WTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:110:    .WTSEL(2'b00),
myfolder/APERTURE_DATA_PREPARE.sv:146:    .WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:75:    .WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:112:    .WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:149:    .WTSEL(2'b00),
myfolder/CHROMA_DATA_PREPARE.sv:186:    .WTSEL(2'b00),
myfolder/LUMA_GEN.sv:86:    .WTSEL(2'b00),
myfolder/LUMA_GEN.sv:123:    .WTSEL(2'b00),
myfolder/LUMA_GEN.sv:160:    .WTSEL(2'b00),
myfolder/LUMA_GEN.sv:197:    .WTSEL(2'b00),

        确实蛮灵嘎。。。

注意点

        grep命令前后是一对“`”,不是单引号,是键盘左上角的那个!

        sed命令中的oldstring和newstring不需要双引号围起来。

        grep命令的字符串可用双引号“”围起来,也可以不用。


 文章来源地址https://www.toymoban.com/news/detail-472610.html

到了这里,关于linux中结合sed和grep的全局文本替换示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Linux:管道命令与文本处理三剑客(grep、sed、awk)

    众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是 | 这个界定符号。另外,管道命令与连续执行命令是不一样的,这点下面我们会说明。 我们先

    2023年04月18日
    浏览(49)
  • 【Linux进阶命令 01】grep(文本的全局搜索与打印)

    grep (缩写来自Globally search a Regular Expression and Print,即 正则表达式的全局搜索和打印输出 )是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。 基本用法: 全部用法: -c :只输出匹配模

    2024年02月05日
    浏览(89)
  • linux命令三剑客grep、sed、awk

    准备 grep、sed、awk号称\\\"linux三剑客\\\",使用频繁,功能强大,本文通过一个实例演示下基本用法。首先准备一个文本文件,命名为text.txt,写入文件内容: grep 首先,最简单的是grep。经常用来过滤查看日志。对于grep需要知道如下几个常用的命令选项: -n: 额外输出行号。例如过

    2024年02月05日
    浏览(78)
  • Linux中字符处理三剑客(grep sed awk )

    在 Linux 系统中,字符处理流程可以利用三个常用的工具来完成,三剑客的具体说明如下: grep:grep 是一种强大的文本搜索工具,可以搜索文件内容中包含指定文本的行,并打印出包含该文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一种文本搜索

    2024年02月08日
    浏览(50)
  • Linux三剑客grep、sed、awk(包括练习题)

    Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 基本用法与常见的正则表达式 扩展正则表达式实践 此处使用grep -E 进行实践扩展正则,egrep官网已经弃用 注意:sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写

    2024年02月11日
    浏览(48)
  • Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正。 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式, 正则表达式 ——事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的

    2024年02月15日
    浏览(55)
  • 【Linux编程Shell自动化脚本】03 shell四剑客(find、sed、grep、awk)

    语法格式 参数说明 : path 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。 expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。 1. 常用expression 以下列出

    2024年02月09日
    浏览(51)
  • linux:文件替换的三种方式sed、awk、perl

    linux 文件内容替换,网上看了下大致就这三种 sed、awk、perl,今天挨个使用一下看看怎么样 语法 Linux sed 命令是利用脚本来处理文本文件。详细文档 搭配 find 可以对文件夹进行查找替换: find ./ -name \\\"*.js\\\" | xargs sed -i \\\'\\\' \\\'s/aaa/hhh/g\\\' 问题 一般在 linux 上该命令就可以生效。 但是我

    2024年02月03日
    浏览(49)
  • Linux CentOS7sed的替换及逆转功能

    在各项工作中,需要大量的文本处理。有时,想把文件按行翻转一下,最后一行显示在第一行,倒数第二行显示在正数第二行,等等。这是对行的逆转要求,可以通过命令tac对文件操作,达到目的;有时,想把一行内容按单词翻转一下,最后一个单词显示第一个位置,倒数第

    2024年02月10日
    浏览(54)
  • Linux学习,使用sed命令对文件内的指定字符串进行替换

    一、创建一个txt文件,用于做测试 vi huawei.txt 二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个 sed -i \\\"s/huawei/apple/\\\" huawei.txt 实现效果: 三、替换每行所有的xiaomi为iphone,第三个“/”后,加参数g就是替换所有 sed -i  \\\"s/xiaomi/iphone/g\\\" huawei.txt 实现效果

    2024年02月17日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包