请教各位个sed问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
carrotli
帖子: 1
注册时间: 2011-11-29 17:23

请教各位个sed问题

#1

帖子 carrotli » 2011-11-29 17:31

一文档中有字符‘或“,我现在想在'和”前面分别加上三个\,也就是变成\\\'或\\\"

我分别处理'或"时用命令
sed "s/[\']/\\\\\\\'/g"
sed 's/[\"]/\\\\\\\"/g'
是可以成功的
但是同时处理时就不OK了
比如sed {s/\([\'\"]\)/\\\\\\\1},得到的结果是错误的,请问应该怎么处理啊
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 请教各位个sed问题

#2

帖子 枫叶饭团 » 2011-11-29 19:12

好吧,我的shell还没到这个高度。。。
Mazenvoy
帖子: 306
注册时间: 2010-04-02 21:17

Re: 请教各位个sed问题

#3

帖子 Mazenvoy » 2011-11-29 20:14

sed "s/[\'\"]/\\\\\\\\\\\\\0/g"
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 请教各位个sed问题

#4

帖子 fnan » 2011-11-30 0:43

kose3@kose3-laptop:~$ echo ab\'ab\"ab|sed 's/[\x27\x22]/\\\\\\&/g'
ab\\\'ab\\\"ab
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
josephyoung
帖子: 158
注册时间: 2011-11-05 18:53
来自: 南极圈

Re: 请教各位个sed问题

#5

帖子 josephyoung » 2011-12-19 19:38

sed "s/[\'\"]/\\\\\\\\\\\\&/g"
中间要12个\来代表3个\,要数清楚哦
回复