关闭

sed指定某行插入、追加、全局替换

标签: sed
5687人阅读 评论(0) 收藏 举报
分类:
有时候会有这样的需求,在指定的行后面或者是前面追加一行,这个时候可以使用sed来完成,具体用法如下

a\ 在指定的行后面追加一行
b\ 在指定的行前面追加一行

使用指定的行号追加内容,在使用行号的过程中,需要注意的问题有以下
N;后面只能使用偶数,且不可以为0
a表示在指定的行后面追加一行
i表示在当前行插入一行,如果指定行为4,其实最终的结果插入行的位置是第三行。
sed -i 'N;2a\newline' 1.txt
sed -i 'N;2i\newline' 1.txt

[root@lanmp shell]# cat << eof > 1.txt
> a
> b
> c
> d
> eof
[root@lanmp shell]# sed -i 'N;2a2222' 1.txt
[root@lanmp shell]# cat 1.txt
a
b
2222
c
d
[root@lanmp shell]# sed -i 'N;2i2222' 1.txt
[root@lanmp shell]# cat 1.txt
2222
a
b
2222
c
d


[root@RS2 shell]# cat 1.txt
1111
3333
[root@RS2 shell]# sed -i '/^1111$/a\2222' 1.txt ; cat 1.txt
1111
2222
3333
[root@RS2 shell]# sed -i '/^1111$/i\0000' 1.txt ; cat 1.txt
0000
1111
2222
3333

下面是把所有匹配的字符都替换为指定的字符

[root@SLAVE ~]# cat << eof > 1.txt
> 1111
> 222333333
> 44444444445
> eof
[root@SLAVE ~]# sed -i 2{s/2/3/g} 1.txt
[root@SLAVE ~]# cat 1.txt
1111
333333333
44444444445
[root@SLAVE ~]# sed -i 3{s/4/5/g} 1.txt
[root@SLAVE ~]# cat !$
cat 1.txt
1111
333333333
55555555555
2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

linux shell sed 实现字符串查找、插入实例

1.在特定字符串所在行后添加一行或多行字符: 实例一:通过grep获取特定字符串所在的行号处添加行
  • zyllong
  • zyllong
  • 2016-08-11 13:47
  • 7759

sed-i 命令在文件第一行添加内容

用sed的i\命令在第一行前面插入即可,加上 -i 选项直接操作文件。 sed -i '1i\要添加的内容' yourfile 查看插入第一行是否成功 sed -n '1,1p' yourfi...
  • u013299417
  • u013299417
  • 2017-06-07 15:30
  • 2987

shell在每一行插入字符,sed用法

1. 如何在一个文本文件中的每一行头插入一个字符 2. 如何在一个文本文件中的每一行尾插入一个字符 3. 如何在一个文本文件中的每一行的指定列插入一串字符         1.awk...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2015-02-05 21:36
  • 9449

使用sed在一个文件中指定位置插入另外一个文件的内容-r命令的使用

在一个文件的指定位置,比如说匹配到了一个单词的行的下一行开始插入另外一个文件的全部内容,可以使用sed的r命令。 zoer@ubuntu:~/aa$ cat data here is a test...
  • imzoer
  • imzoer
  • 2013-04-07 11:08
  • 10097

sed在指定行插入新行

前些天备份使用mysqldump备份出的数据文件(insert形式),里面的内容没有use db_name这个语句,所以如果在脚本中执行,那么会提示no database selected,所以就想在...
  • zbszhangbosen
  • zbszhangbosen
  • 2012-04-06 23:51
  • 29553

sed 技巧一例:特定位置插入

通过一例子熟悉 sed 的运用 下面命令是在修改 ~/fs/install/nzos.conf 文件, 并在 env 第一次出现的地方再添加一行 env LXC_EXTRA_PORT=5556 s...
  • span76
  • span76
  • 2013-09-04 12:37
  • 9016

sed 在指定行插入

[root@web-htl2-01 ~]# sed '/5/ a\  456\   123 ' ~/install.log 1 2 3 4 5   456   123 6 7 8 ...
  • wych1981
  • wych1981
  • 2014-10-11 11:37
  • 1746

SHELL 在指定行的前/后插入指定内容

#如果知道行号可以用下面的方法 sed -i '88 r b.file' a.file    #在a.txt的第88行插入文件b.txt awk '1;NR==8...
  • weiyuefei
  • weiyuefei
  • 2017-04-01 13:59
  • 4488

sed 在指定行后添加新数据

1. sed 的 追加 a 选项 cat txt aaa 111 bbb ccc 222 ddd eee 333 ggg jjj 444 kkk hhh 555 lll mmm 666 nnn jjj...
  • caoshuming_500
  • caoshuming_500
  • 2013-04-26 03:29
  • 23311

Linux shell 用sed在文档中 增加一行 或 删除一行

 Linux shell 用sed在文档中 增加一行 或 删除一行   2011-03-28 04:48:16|  分类: Linux |  标签: |举报 |字号大中小...
  • xingxiliang
  • xingxiliang
  • 2015-01-23 12:50
  • 7414
    个人资料
    • 访问:180392次
    • 积分:2867
    • 等级:
    • 排名:第14354名
    • 原创:100篇
    • 转载:42篇
    • 译文:2篇
    • 评论:14条
    文章分类
    最新评论