如何编写“sed”脚本,用另一个文件的内容替换两个标记之间的文本

2023-11-29

我正在尝试写一个sed用另一个文件的内容替换两个标记之间的文本的脚本。

假设我有以下带有标记的文件<!-- Start --> and <!-- End -->:

# index.html
...
<!-- Start -->
<p>Old content</p>
<!-- End -->
...

我想用该文件的内容替换随附的文本:

# snippet.html
<p>New content</p>

我试过这个sed script:

$ cat snippet.html | sed -i -e '/<\!-- Start -->/,/<\!-- End -->/ { r /dev/stdin' -e';d};' index.html

它替换了内容和标记,但我需要保持<!-- Start --> and <!-- End --> markers这样我以后就可以再次更换内容。

我应该对sed script?

提前致谢!


您需要对代码执行的操作就是添加//!之前d:

cat snippet | sed -e '/<\!-- Start -->/,/<\!-- End -->/ { r /dev/stdin' -e '; //!d }' file

//是“最后一场比赛”的简写......所以在这种情况下/START/,/END/{ }内没有任何其他匹配项{ },它将匹配both /START/ and /END/.

//!d确保删除除开头和结尾的匹配行之外的范围。

ETA:正如 @potong 在评论中提出的那样,使用r /dev/stdin似乎是一个特例——只有第一个r会将任何内容添加到输出流中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何编写“sed”脚本,用另一个文件的内容替换两个标记之间的文本 的相关文章

  • 删除一行中逗号之前的所有内容

    我有多个文件 其中包含以下行 foo 123456 bar 654321 baz 098765 我想删除每行逗号之前 包括 的所有内容 输出将是 123456 654321 098765 在另一个问题上看到类似的内容后 我尝试使用以下内容
  • 如果字段重复则删除行

    如果第一个字段重复 则寻找 awk 或 sed 单行代码以从输出中删除行 我见过的删除重复行的示例是 awk a 0 a 0 尝试使用它作为基础 但没有运气 我认为将 0 更改为 1 可以解决问题 但似乎不起作用 awk if a 1 0
  • PHP 正则表达式修复被黑的 WordPress 网站

    我有一个客户安装了多个 WordPress 但他没有保持最新状态 结果 他被黑了 当我试图找出黑客是如何进入并永久解决问题时 我正在尝试创建一个脚本来快速 自动地修复它们 我找到了这个脚本 它可以满足我的要求 http designpx c
  • 当模式在范围内时使用 sed 打印范围?

    我有一个充满查询的日志文件 我只想查看有错误的查询 日志条目类似于 path to file executing query QUERY SIZE ROWS MSG DURATION 我想打印所有这些东西 但只有当MSG 包含一些有趣的内容
  • sed 在文本文件中换行?

    我是 Sed 的新手 我有一堆 ASCII 文件 其中包含如下所示的数据 Test Version 2 6 3 Model Manufacturer HR21 100 Test Version 2 6 3 Model Manufacture
  • 如何在 UNIX / Linux 操作系统下使用 sed 替换带有换行符 (\n) 的模式?

    我有一个 txt 文件 其中包含 Some random text here This file has multiple lines Should be one line I use sed q N s n sl g t q file1
  • 我可以使用 sed 命令将多个空行替换为一个空行吗?

    我知道 SO 中也有类似的问题如何在 bash 中用单个空行替换多个空行 https stackoverflow com questions 922449 how can i replace mutliple empty lines wit
  • 使用 sed 删除非字母数字字符

    我正在尝试验证一些输入以删除一组字符 只允许使用字母数字字符加 句点 下划线 连字符 我测试了正则表达式 w here http gskinner com RegExr http gskinner com RegExr 它与我想要删除的内容
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • 如何查找所有以句号结尾的单词?

    我有一个包含许多以 a 结尾的单词的文件 其中大部分是缩写 例如 etc p s 如何输出一个仅显示一次所有这些单词的列表 所有单词前面都有一个空格 因此可以使用该空格来查找单词的开头 没有一个单词出现在该行的开头 文件中没有句子 因此句点
  • sed 中的正则表达式用于在一条语句中进行多个替换

    我想清理一些输入并用可接受的输入替换几个字符 例如一个丹麦人 with aa 使用多个语句可以轻松完成此操作 例如 ae aa oe 但由于工具限制 我希望能够在单个正则表达式中完成此操作 我可以捕获所有相关案例 但我的替换不能按我想要的方
  • 使用 sed 和 grep/egrep 进行搜索和替换

    我在用egrep R后跟包含大约 10 个并集的正则表达式 如下所示 jpg png gif等等 这很好用 现在我想替换所有找到的字符串 bmp 我在想类似的事情 egrep lR jpg png gif sed s some expres
  • 仅替换引号之间的空格

    我有日志文件中的一行 field 1234 text in quotes 1234 other text in quotes 我想替换引号之间的空格 这样我就可以使用空格作为分隔符来提取列 所以结果可能是这样的 field 1234 tex
  • shell解析json并循环输出组合变量

    杰斯克喜欢我之前的话题 https stackoverflow com questions 74063588 shell parsing json contains spaces in string 我知道如何解析带有空格的简单 json
  • 使用 sed 将反斜杠替换为斜杠[重复]

    这个问题在这里已经有答案了 我需要更换 with 我有一个文件 其中包含 test test2 test3 test4 I tried VRS Ruta cat ruta lst sed s g sed s g output test te
  • OSX 和 SED - 删除文档目录中第 25 行之后的所有行

    我有一个包含数千个 txt 文件的目录 我需要修剪文件 以便删除每个文件中第 25 行之后的每一行 我使用的是 Mac OSX 10 14 6 我怎样才能做到这一点 我所做的尝试 经过研究 我认为 Mac OSX 终端中的 SED 是实现此
  • sed 替换 json 对象中键的值

    我想做什么 给定一个 json 事件文件 我想通过关键字定位特定事件 然后将该事件中的键值替换为 这必须使用 sed 来完成 Splunk 转发问题 我不会用细节来烦你 事件示例 message we have a response fro
  • 排除正则表达式匹配中的字符串,以进行 sed 处理

    我需要将其匹配为替代命令 whatever MATCH THIS whateverwhatever AND THIS whateverwhatever 我正在尝试 sed e s 1 g myfile 但这是急切的匹配 MATCH THIS
  • 如何使用管道字符分隔符分隔字段

    我知道这个问题已经被问过 但我发现没有一个解决方案对我有用 我有一个程序 其输出如下 COUNT 293 1 lps 我对第二个字段感兴趣 但是这些尝试都没有成功 spawn 1 cut d f2 spawn 1 cut d f2 spaw
  • 如何 grep 文件中不区分大小写的字符串?

    我有一个文件file1其结尾为Success OR success 我想要grep为了这个词success以一种不区分大小写的方式 我写了以下命令 但它区分大小写 cat file1 grep success 我怎样才能改变它 以便它ret

随机推荐

  • 这个语法在 Python 中意味着什么?

    下面声明中的逗号是什么意思 它是否同时定义两个变量 resp content client request request token url GET 它创建了一个tuple 在这种情况下 元组有两个变量 它们被分配结果request re
  • 使用 Swift 格式化日期

    我正在尝试使用 Date Formatter 将字符串转换为日期 var dateFormatter NSDateFormatter dateFormatter dateFormat yyyy MM dd T HH mm ss Z var
  • CSS 对齐文本,用点填充空间[重复]

    这个问题在这里已经有答案了 可能的重复 用点或连字符填充标签之间的可用空间 有没有办法用简单的 CSS 来格式化这样的文本 我有一个包含不同产品及其药物和剂量的数据库 希望统一显示它们 但没有等宽字体 Drug 1 10ml Another
  • 如何重现 sendRedirect 问题 - HTTPS 更改为 HTTP

    一旦用户成功通过身份验证 我将使用 response sendRedirect 将用户重定向到主页 这是为了避免 登录重定向漏洞 然而 由于上述更改 我的一位客户面临着他的 HTTPS 请求转换为 HTTP URL 中包含 IP 地址 的问
  • 301 将 Blogger 重定向到另一个主机并保持 Google 排名

    首先 我对任何拼写错误表示歉意 我是法国人 我希望您能提供一些可能有简单修复的帮助 但我还没有找到任何针对我的情况的信息 解释 我在 Blogger 平台上有一个网站 并且在 Godaddy 注册了大约两年的域名 但现在 我在那里并不满意
  • 如何保持后台 GPS 服务活跃

    我正在尝试将后台 GPS 位置侦听器作为一项服务 供我的应用程序中的所有活动使用 它还应该扫描位置 直到我 杀死 它 然而我意识到几个小时后 GPS 服务就被终止了 我无法获得更多的位置 如何保持此服务处于活动状态 至少是 location
  • 如何使用 jQuery 按名称选择元素?

    我有一个表格列 我正在尝试扩展和隐藏 jQuery 似乎隐藏了 td 当我选择它时的元素class但不是由元素的name 例如 bold hide Selecting by class works tcol1 hide Selecting
  • 移动网站的用户代理、域更改

    我有一个移动网站 我想将用户重定向到domain mobi 或mobile subdomain 我们都有设置 如何确定移动浏览器 将移动网站放在不同的域或子域中是一种不好的做法吗 如何确定移动浏览器 下面是一些可以完成这项工作的 javas
  • 打开“DEBUG”宏值

    在我的代码中 我想有条件地执行一些操作 ifdef DEBUG NSLog I m in debug mode endif 我已配置 项目 gt 编辑项目设置 gt 构建 选项卡 以便 DEBUG 列为用户定义设置 其值为 1 在 配置 下
  • Tkinter 侧边栏

    我想创建一个像上面那样可折叠的侧栏 在折叠形式中 侧栏仅包含选项的图标 当您将鼠标悬停在侧栏上时 侧栏将展开 显示图标的描述 名称 如果您单击该图标 它将带您进入该图标指定的功能 例如设置页面 右侧是带有很多按钮的主页 我不知道你会如何做到
  • 使用 Sails.js 进行个性化聊天

    sails js 中是否有一种方法或教程可以帮助我使用套接字 例如 pubnub 构建点对点聊天 我正在尝试使用 sails js 实现个性化聊天功能 这意味着我的应用程序中有多个用户 并且一个用户可以与另一个用户聊天 因此 如果用户 A
  • 如何通过Matlab正确读取串口数据

    我正在使用 Matlab 从微处理器的串行端口读取数据 数据为十六进制格式 每个样本为 4 个字节 32 位 当我读取这些数据时 我得到一些与传输的数据不匹配的随机数字序列 下面是我的代码 s serial COM16 assigns th
  • 在 JavaScript 中更改所选文本的字体样式

    我正在使用 javascript 没有任何库 现在我只想更改文本区域所选文本的字体样式 我使用以下函数提取了选择的文本 有人可以帮忙吗 function ShowSelectionInsideTextarea editor var text
  • 使用 SessionRegistry 获取登录用户

    我有一个完全由 Weblogic 容器保护的 Web 应用程序 现在我必须列出当前登录的用户 我必须使用 Spring Security 2 0 4 在 web xml 中我定义了必要的监听器和过滤器
  • 如何更改 Bash 中的命令行参数?

    有没有办法更改 Bash 脚本中的命令行参数 例如 Bash 脚本的调用方式如下 foo arg1 arg2 有没有办法更改脚本中 arg1 的值 就像是 1 chintz 您必须重置所有参数 改变例如争论 3 set 1 2 new ar
  • 如何获取 UTF-8 JSON

    我正在使用 LitJSON 库 但事情变得有点奇怪 你知道有什么 JSON 库可以在转换时保留重音符号吗 这是测试 测试 json id CS 001 name L l ment type T t id CS 002 name L outr
  • Django - 使用 PostgreSQL 和 Elasticsearch 进行全文搜索

    我有一个Django and Django REST Framework供电的 RESTful API 与PostgreSQLDB后端 支持对特定模型进行过滤 现在我想添加全文搜索功能 是否可以使用Elasticsearch进行全文搜索 然
  • 通过发送 SOAP 请求来实现 Air API

    我有一个 php 网站 这里我需要实现机票搜索和预订功能 为了做到这一点 我使用了 ARZOO 网站的付费 API 我从 ARZOO 获取了所有文档 我已阅读整个文档 医生说 Accessing this service requires
  • MPAndroidChart - 如何最好地将 X 轴值设置为字符串/日期?

    我对此有点迷失MPAndroid图表库 我开始了初学者的例子here 它建议使用 getValueX 和 getValueY 方法创建一个对象数组 列表 然后将其添加为条目 如下所示 List
  • 如何编写“sed”脚本,用另一个文件的内容替换两个标记之间的文本

    我正在尝试写一个sed用另一个文件的内容替换两个标记之间的文本的脚本 假设我有以下带有标记的文件 and index html p Old content p 我想用该文件的内容替换随附的文本 snippet html p New cont