免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 12161 | 回复: 20
打印 上一主题 下一主题

sed遇到什么符号要用转义、 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-29 11:26 |只看该作者 |倒序浏览
sed遇到什么符号要用转义 \

我知道的有  [ ] " '   还有什么符号  需要前面加 \

论坛徽章:
0
2 [报告]
发表于 2008-06-29 12:01 |只看该作者
还有s命令后紧跟的分隔符要转换,其他的就不知道了"和'也不一定要转义的,比如:echo 'a"b'|sed 's/"/a/'和echo "a'b"|sed "s/'/a/"
有点郁闷的是,如果用[作为分隔符怎么办?

论坛徽章:
0
3 [报告]
发表于 2008-06-29 12:15 |只看该作者
sed 's   是不是现在的新版本  不能这么用了   都变成 sed "s   了?

论坛徽章:
0
4 [报告]
发表于 2008-06-29 12:21 |只看该作者
用单引号还是双引号主要看你的习惯,我一般是用单引号的,单引号可以少一些转义。

论坛徽章:
0
5 [报告]
发表于 2008-06-29 12:34 |只看该作者
我用单引号为什么会 提示

sed: -e expression #1, char 1: unknown command: `''

论坛徽章:
0
6 [报告]
发表于 2008-06-29 12:45 |只看该作者
你用的是echo 'a"b'|sed 's/"/a/'?

论坛徽章:
0
7 [报告]
发表于 2008-06-29 12:57 |只看该作者
原帖由 walkerxk 于 2008-6-29 12:45 发表
你用的是echo 'a"b'|sed 's/"/a/'?



用批处理  调用的  sed -i 's/"/a/' a.txt

这样不可以吗?

论坛徽章:
0
8 [报告]
发表于 2008-06-29 13:10 |只看该作者
-i不是批处理,只是直接写入文件而已,你的sed是gnu sed?什么版本?
sed --version
GNU sed version 4.1.4

论坛徽章:
0
9 [报告]
发表于 2008-06-29 13:14 |只看该作者
支持-i参数的话应该是gnu sed啊。
你改成sed -i 's/\"/a/' a.txt试试。
还有,在没有确认命令是否成功的时候用sed 's/\"/a/' a.txt|less查看,确认成功再用-i,免得文件被破坏。脚本中尽量少用-i,内存的读取比硬盘快很多。

论坛徽章:
0
10 [报告]
发表于 2008-06-29 13:19 |只看该作者
C:\Program Files\GnuWin32\uninstall>sed --version
GNU sed version 4.1.5


我就是把  sed -i 's/"/a/' a.txt  这个命令 放在批处理里面   然后a.txt里面的是 "a'b"
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP