sed如何插入多行和特殊字符

hqmb2 2019-01-30 06:51:18
[root@Client1-RHEL chap05]# cat -n datafile
1 northwest NW Charles Main 3.0 .98 3 34
2 western WE Sharon Gray 5.3 .97 5 23
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 1

问题1:
比如匹配north以后,我想插入多行
--->This is line 1<---
--->This is line 2<---
--->This is line 3<---
--->This is line 4<---

[root@Client1-RHEL chap05]# sed '/^north /a
> --->This is line 1<---
> --->This is line 2<---
> --->This is line 3<---
> --->This is line 4<---' datafile
sed: -e expression #1, char 13: unknown command: `-'

问题2:
如何正确插入特殊字符,比如IT'S里边的单引号
[root@Client1-RHEL chap05]# sed '/^north /a "IT'S A SECRET"' datafile
>
[root@Client1-RHEL chap05]# sed '/^north /a "IT\'S A SECRET"' datafile
>
尝试了两种方法,都直接接入多行编辑模式
...全文
1846 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2019-02-26
  • 打赏
  • 举报
回复
楼上正解
$ sed -e '/north /a \
--->This is line 1<---\
--->This is line 2<---\
--->This is line 3<---\
--->This is line 4<---' datafile
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
--->This is line 1<---
--->This is line 2<---
--->This is line 3<---
--->This is line 4<---
central CT Ann Stephens 5.7 .94 5 1
$
cjaizss 2019-02-19
  • 打赏
  • 举报
回复
sed '/^north[ \t]/a\--->This is line 1<---\
--->This is line 2<---\
--->This is line 3<---\
--->This is line 4<---'
这个是你要的吗?
aabbabababaa 2019-02-09
  • 打赏
  • 举报
回复
特殊符号要转义吧,多行也是因为有特殊符号。。。
可以当查询手册使用,因为是自己一点一点积累的,所以多要些资源分 一、各种循环命令 3 1. #WHILE循环用法 3 2. #UNTIL循环用法 3 3. #FOR循环用法: 3 二、各种条件语句 4 1. #IF语句用法 4 2. #CASE语句用法 4 语法结构 4 加select 用法 4 #select范围用法 5 3. #GOTO语句 5 4. #UNTIL循环语句 5 5. 循环控制语句 5 1.break命令 5 2.continue命令 5 三、替换命令用法 6 1. #TR 替换命令 6 2. #SED替换字符串代码 6 四、多行文件写入或注释 7 1. 多行文件写入 7 2. 多行注释方法 7 五、SHELL其它命令总结 7 1. #AWK命令用法 7 2. 搜索文件夹或文件命令 7 3. RPM解包和TAR解包 7 #rpm 强制安装 7 4. 统计某字符串数量 7 5. #DD命令使用总结 8 6. #REV 字符串反向命令 8 7. 变量截取 8 8. #UNIQ 去掉重复 8 9. #SORT 排序 8 10. 杀掉某进程 8 11. #SHELL输出TAB和空格 8 12. #PS用法 8 13. #TAIL用法 9 14. #ECHO选项 9 15. #GREP和EGREP过滤组 9 16. LS的特殊用法 9 六、LINUX SHELL其它 9 1. VI使用 9 2. 算术运算符 9 3. 字符串比较 10 4 字符串表达式(判断条件命令IF) 10 5. #SLEEP等待 10 6. #TEE执行结果复制保存 10 七、数组生成方法 10 1. #SEQ方法生成 10 2. 通过内部{BEGIN..END}生成 11 3. 以性能比较 11 4. 数组 11 八、LINUX系统常用配置方法及命令 11 1. 网卡相关的TCP/IP网络配置文件地址 11 2. #NETCONFIG命令可以永久保存设置 11 3. #NEAT或REDHAT-CONFIG-NETCONFIG可永久保存设置。 12 4. #DATE命令的使用 12

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧