首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在匹配模式后使用sed追加新行时,在添加换行符时出现问题

在匹配模式后使用sed追加新行时,在添加换行符时出现问题
EN

Unix & Linux用户
提问于 2019-06-19 07:17:51
回答 2查看 559关注 0票数 -1

我使用下面的命令搜索模式(Rel_Tag_St_bit),然后在文件中追加以下行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i -e '/Rel_Tag_St_bit/a\'一旦添加了这一行,我就需要换行符,因为我看到在同一行中新添加的行后面追加的下一行。样本输入:Line1 (pattern match)managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
Line 2 (append ) methods.mavenWithGoals("mvn so:s -f abc/pom.xml") methods.mavenWithGoals("deploy -DaltDeploymentRepository=)
Line 3 (appears on second line itself) 因此,这里的第三行出现在第二个附加行上。样本输出:1)managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
2)methods.mavenWithGoals("mvn so:s -f abc/pom.xml")
3)methods.mavenWithGoals("deploy -DaltDeploymentRepository=) \n''\ methods.mavenWithGoals("mvn so:s -f abc/pom.xml")' file

一旦添加了这一行,我就需要换行符,因为我看到在同一行中新添加的行后面追加的下一行。

样本输入:

A1

因此,这里的第三行出现在第二个附加行上。

样本输出:

A2

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-06-19 10:12:14

假设您的原始文件包含:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cat file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)

您可以通过以下方式修改它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sed -e '/Rel_Tag_St_bit/a\'这是使用shell (bash、ksh、zsh) C字符串引入新行。\nmethods.mavenWithGoals("mvn so:s -f abc/pom.xml")\n' file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("mvn so:s -f abc/pom.xml")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)

这是使用shell (bash、ksh、zsh) C字符串D2引入新行。

...'引入新行。\nmethods.mavenWithGoals("mvn so:s -f abc/pom.xml")\n' file managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt") methods.mavenWithGoals("mvn so:s -f abc/pom.xml") methods.mavenWithGoals("deploy -DaltDeploymentRepository=)

这是使用shell (bash、ksh、zsh) C字符串D2引入新行。

票数 0
EN

Unix & Linux用户

发布于 2019-06-20 03:03:06

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sed -i -e '/Rel_Tag_St_bit/G;s/\n/&methods.mavenWithGoals("mvn so:s -f abc/pom.xml")/' file

在这里,在所需的行G的末尾添加一个换行符/Rel_Tag_St_bit/,然后将所需的文本放在您刚刚添加的用G命令添加的换行符之后。由于换行符是有条件地添加的,所以s///命令不会对不感兴趣的行触发,而sed将允许它们按原样传递。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/525863

复制
相关文章
python模拟sed在每行添加##
     我们在平常的工作中有时候需要对摸一个文件进行操作,比如在一个文件的每行前面添加##之类的,在shell中这个需求很简单,用sed单行就能搞定,下面我们来看看一个文件:
py3study
2020/01/06
9210
sed & awk 第二版学习(五)—— 高级 sed 命令
高级命令改变执行或控制的流程顺序。sed 脚本中正常的控制流为:一行被读入模式空间并用脚本中的每个命令逐个应用于那一行;当到达脚本底部时,输出这一行并且清空模式空间;然后新行被读入模式空间,并且控制被转移回脚本顶端。
用户1148526
2024/09/20
1300
在JavaScript中支持“模式匹配技术”
模式匹配(pattern matching)是 lisp 、rust 、scala 、erlang 等语言中的常见语法,不过 JavaScript 一直未支持这个特性,虽然 tc39 早有相关的题案github.com/tc39/propos…,不过目前进展缓慢,遂研发了一个Babel插件用于在JavaScript中支持模式匹配的语法
玖柒的小窝
2021/12/07
5360
sed命令在文本每行,行尾或行首添加字符
用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file
章工运维
2023/05/19
3.8K0
sed命令在文本每行,行尾或行首添加字符
LinuxShell命令sed
sed 是 Linux系统自带的流式编辑器(流式编辑器是指处理处理输入流或文本流中的数据),不同于普通的交互式文本编辑器(比如 vim),sed 编辑器根据命令来处理数据流中的数据。
hotarugali
2022/02/28
1.1K0
LinuxShell命令sed
Linux:sed命令详解
1. 简介 sed 是非交互式的编辑器。它不会修改文件,除非使用 shell 重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 sed 编辑器逐行处理文件(或输入),并将结果发送到屏幕。具
张戈
2018/03/23
7.1K0
Linux:sed命令详解
sed & awk 第二版学习(四)—— 基本 sed 命令
第一个命令可以和左大括号放置在同一行,但是右大括号必须自己单独处于一行。每个命令都可以有自己的地址并允许有多层分组。而且就像命令在大括号内的缩进方式一样,允许在行的开始处插入空格或制表符。要确保在大括号后没有空格。
用户1148526
2024/09/10
1040
在卷积层后添加池化层
我们来向https://ymiir.top/index.php/2022/02/05/cnn_study_1/文章中的神经网络加入池化层,体验池化层带来的效果,网络中使用最大池化,且设置ceil_mode为True。
月梦@剑心
2022/09/14
5370
在卷积层后添加池化层
Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)「建议收藏」
cat filename | tail -n +3000 | head -n 1000
全栈程序员站长
2022/07/11
9.8K0
js匹配换行符
其实工作中还是会碰见这样的业务,后端接口返回的数据中,文本自带换行,但却不是从副文本拿出来的,
全栈程序员站长
2022/08/31
8.2K0
linux基础命令介绍十:文本流编辑 sed
与vim不同,sed是一种非交互式的文本编辑器,同时它又是面向字符流的,每行数据经过sed处理后输出。
用户5030870
2019/04/10
1.1K0
Mysql在字段现有内容后面追加内容
在发布系统中所有前置任务里面增加一些内容,发布系统中大约有200+的项目,手动是不可能手动的,只有在数据库中操作了。
行 者
2019/12/05
3K0
【数据处理】sed原理及使用举例(快速理解核心)
在做数据开发中,经常需要通过shell脚本/命令来针对文本进行预处理,sed是一个很强大的流式处理命令,笔者几乎每天都会用到,在这统一梳理总结了下! 其实 sed 很简单,比vim简单很多了! 1. 基础 核心概念 两个空间: 模式空间(pattern space); 交换空间(hold space 保持空间) 模式空间:容纳当前行的缓冲区,即通过模式匹配到的行被读入该空间中 保持空间:一个辅助缓冲区,可以和模式空间进行交互(通过h,H,g,G),但命令不能直接作用于该空间,在进行数据处理时作为“暂存区域”
onephone
2022/03/30
3.2K5
【数据处理】sed原理及使用举例(快速理解核心)
sed 多行模式、分支及循环
sed 默认每次只处理一行数据,除非使用 H、G 或者 N 等命令创建多行模式,每行之间用换行符分开。本篇将解释适用于多行模式的 sed 命令。在处理多行模式时,要记住 ^ 只匹配该模式的开头,即最开始一行的开头,且 $ 只匹配该模式的结尾,即最后一行的结尾。
用户1148526
2024/07/13
2150
《Linux命令行与shell脚本编程大全》第二十一章 sed进阶
本章介绍一些sed编辑器提供的高级特性。 21.1 多行命令 按照之前的知识,所有的sed编辑器命令都是针对单行数据执行操作的。 在sed编辑器读取数据流时,它会基于换行符的位置将数据分成行,一次处理一行数据。 有时会需要对跨多行的数据执行特定操作。 比如,在数据中查找一个长的短语Linux system Administrators Group.如果这个短语出现在两行当中,之前的知识就不够用了。 解决方案,sed编辑器包含了三个可用来处理多行文本的特殊命令: N:将数据流中的下一行加进来创建一个多行组(m
xcywt
2018/01/11
1.7K0
《Linux命令行与shell脚本编程大全》第二十一章 sed进阶
sed 保持空间命令之 H 的执行逻辑
大写 H 命令表示把模式空间的内容追加到保持空间,追加不会覆盖保持空间的内容。当向初始保持空间追加内容时,因为保持空间初始内容为一个换行符 \n,所以直接把模式空间内容追加进来。当保持空间已经有内容时,H 命令在当前保持空间内容后面加上换行符 \n,然后再把模式空间内容追加进来。
用户1148526
2024/07/08
790
Linux学习----文本三剑客——sed(马哥教育原创)
我以前的文章介绍过grep了,今天我就来说一下第二个sed,它是stream editor的缩写。在Linux的文本文件中文本存储都是一行,显示时表现的多行其实都是因为有换行符的存在,例如:文本是:abc$def$ghi 显示出来就是三行了。Sed就是一个行编辑器,它一次读一行文本进行操作,然后根据我们的选择看是否同步到文本之中。还有一个叫awk的,在Linux上叫做gawk(gnu awk),它是一个文本格式化工具,我们下一篇文章再说。 工作机制:每次读取一行文本至“模式空间(pattern space)
Py_lover
2018/08/02
1.4K0
linux中sed命令总结
原文:https://wangchujiang.com/linux-command/c/sed.html
入门笔记
2022/06/02
3.2K0
在Cygwin中出现JAVA_HOME出现问题找不到出现问题
JAVA_HOME出现问题后查看这里面是否出现空格,在UNIX下空格无法解析,
用户5166556
2019/04/16
8250
sed中的正则匹配
sed很早就支持正则表达式了,这在文件处理中非常有用,以下列出一些常见用法(GNU SED版本)。
生信编程日常
2020/06/29
7.4K0

相似问题

单例缓存还是实例缓存?

11

设计:传递类实例还是使用单例?

511

单例应该在方法中使用self实例还是共享实例

20

IoC容器-单例还是传递实例?

11

空对象-实例化还是单例?

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文