使用 sed 在第 N 个匹配模式后插入一些文本

2023-12-14

我怎样才能这样做呢?我有多个例如我的文件中存在 foobar 模式,如何在例如之后添加第四个 some_text?


以下内容对您有用吗?

sed ':a;$!{N;ba};s/\(foobar\)/\1\nsome_text/4' inputfile

对于输入:

$ cat inputfile
line
foobar
foobar
foobar
line
foobar
line
foobar
line
foobar
line

这会生成

$ sed ':a;$!{N;ba};s/\(foobar\)/\1\nsome_text/4' inputfile
line
foobar
foobar
foobar
line
foobar
some_text
line
foobar
line
foobar
line

Use -e在 FreeBSD 上:

sed -e :a -e '$!N' -e '$!ba' -e 's/\(foobar\)/\1\nsome_text/4' inputfile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 sed 在第 N 个匹配模式后插入一些文本 的相关文章

  • sed 匹配换行符中的模式

    这是我的输入
  • 从命令行查找并替换多行文本

    我正在尝试使用还执行其他操作的脚本编辑配置文件 该脚本需要找到某些连续的文本行并将其删除 它需要在适当的位置粘贴一个新配置 该新配置从旧配置所在的同一行开始 在新旧配置中 空间的使用都很重要 在 configfile php 中 此文本块
  • 如何为 r 中两个数据帧之间的匹配观察值分配相同的唯一 ID?

    当我有两个 或更多 数据框并希望为每个数据集中和跨两个数据集的每个匹配观察分配唯一的 ID 时 我有一个实际问题 例如 1 Create dataframe df1 a1 lt c 1 1 1 1 2 2 2 2 1 1 b1 lt c 1
  • 使用 sed 替换相同长度的文本

    有没有办法使用 sed 替换具有相同长度的其他内容 例如点 零等 的模式 像这样 maci san echo She sells sea shells by the sea shore sed s sh a z gI sells sea b
  • 使用 awk 计算行的平均值

    我一直在编写一个脚本 通过读取 txt 文件的输入来计算行的平均值 示例文本输入文件输入 txt 157361 155687 156158 156830 149610 151824 152353 152027 159195 158490 1
  • 为什么“sed -n -i”会删除现有文件内容?

    运行 Fedora 25 服务器版本 sed version给我sed GNU sed 4 2 2以及通常的版权和联系信息 我创建了一个文本文件sudo vi potential sed bug Vi 显示该文件的内容 带有 set lis
  • SED 或 AWK 将所有内容替换为另一个文件中的模式

    我正在尝试使用 SED 脚本进行模式替换 但它无法正常工作 样本内容 txt 288Y2RZDBPX1000000001dhana JP2F64EI1000000002d EU9V3IXI1000000003dfg1000000001dfd
  • 查找列中字段的平均值[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个这样的记录 1 11 11 T A 0 0 A 1 B 2 C 3 D 4 有 8 列 每列由制表符空格分隔 我需要的输出是这
  • sed:每N行后插入一个字符串

    我想在大文件中每 30 行后插入一个字符串 我使用的是 mini sed 它不支持 波形符 范围运算符 我正在寻找仅限 sed 的解决方案 该线程是如何使事情变得过于复杂的另一个例子 这应该可以做到 sed 0 30 s string g
  • sed 替换文字 TAB

    我想更换TABs in stdout带分号 通过运行sed来自 ZSH shell 我知道通常可以 在其他 shell 中 使用 somecommand sed s t g 然而 这在 FreeBSD 下的 ZSH shell 中对我不起作
  • 使用 bash 脚本在 Info.plist 中添加/替换 URL 方案

    我想添加 替换 URL 方案Info plist使用 bash 脚本 命令创建文件 我尝试过sed命令有各种模式但没有成功 我们希望使用 Jenkins 自动生成构建 并且我们的 URL 方案可以针对各种构建进行更改 因此我们想要修改Inf
  • 在 bash 脚本中获取星期几

    我想在变量中包含星期几DOW 所以我使用以下 bash 脚本 DOM date d DOW DOM 7 sed s 0 不幸的是我收到这个错误 bash 09 command not found 变量中的预期结果为 2 9 7 2 DOW
  • 在 awk 中按特定顺序打印文件

    我正在关注这个链接https stackoverflow com a 54599800 10220825 https stackoverflow com a 54599800 10220825 file txt Iteration 1 RA
  • 使用 sed 和 pstree 显示正在使用的终端类型

    我一直在尝试仅显示用作名称的终端类型 例如 如果我使用 konsole 它会显示 konsole 到目前为止我一直在使用这个命令 pstree A s 输出这个 systemd konsole bash pstree 我有以下内容可以从该行
  • 如何在文件中固定数量的字符后插入换行符

    我正在寻找一个 bash 或 sed 脚本 最好是单行脚本 用它可以在巨大的文本文件中的固定数量的字符之后插入一个新行字符 像这样的事情怎么样 Change 20 是换行符之前的字符数 temp text 是要替换的文件 sed e s 2
  • 如何在 awk 或 sed 中编写查找所有函数(使用正则表达式)

    我有运行 python 的 bash 函数 它从标准输入返回所有找到的正则表达式 function find all python c import re import sys print n join re findall 1 sys s
  • PHP 正则表达式修复被黑的 WordPress 网站

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

    我有一段文本 其中一些部分由四空格缩进清晰地界定 PERCHANCE he for whom this bell tolls may be so ill as that he knows not it tolls for him and p
  • 在 sed 命令和范围地址中使用不同的分隔符

    我在 shell 脚本中使用 sed 来编辑文件系统路径名 假设我想替换 foo bar with baz qux 然而 sed 的s 命令使用正斜杠 作为分隔符 如果我这样做 我会看到发出一条错误消息 例如 sed s foo bar b
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050

随机推荐