sed 在某行下面添加内容

需求是在某行内容的下面新加内容

CentOS

相关代码

sed -i 'N;/目标文本1/a\//ancymocknreturn 新加内容1' file_path

sed -i 'N;/目标文本2/a\//ancymocknreturn 新加内容2' file_path

期待的结果

目标文本1
//ancymock
return 新加内容1

目标文本2
//ancymock
return 新加内容2

实际的结果

目标文本1
//ancymock
return 新加内容1

目标文本2
(空了一行)
//ancymock
return 新加内容2

同样的sed逻辑,给第二个目标文档后面追加的时候,出现了跳行。。。。。。有时候真的觉得rlgl

阅读 5.5k
1 个回答
$ cat /alidata/abc.txt
abc
My test text

sed -i "$ a\新加内容" /alidata/abc.txt

$ cat /alidata/abc.txt
abc
My test text
新加内容

=========================================================================

# cat abc.txt
Some text
Random
[option]
insert text here
Some stuff

# sed '/^Some text/{N;s/$/\nadd new line/}' abc.txt
Some text
Random
add new line
[option]
insert text here

加-i修改原文件。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进