- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
有时候会有这样的需求,在指定的行后面或者是前面追加一行,这个时候可以使用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@vmmonitor html]# cat -n 1.txt 1 11111111 2 222222222 3 22222222222 4 33333333 5 4 6 555555 7 888 [root@vmmonitor html]# sed 3{s/2/3/} 1.txt 11111111 222222222 32222222222 33333333 4 555555 888 [root@vmmonitor html]# vim 1.txt [root@vmmonitor html]# vim 1.txt [root@vmmonitor html]# cat 1.txt 11111111 222222222 222333333322222222 3322222222222222333333 4 555555 888 [root@vmmonitor html]# sed 3{s/2/3/g} 1.txt 11111111 222222222 333333333333333333 3322222222222222333333 4 555555 888 [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
售前咨询
售后咨询
备案咨询
二维码
TOP