免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5537 | 回复: 16
打印 上一主题 下一主题

有关sed模式匹配中的特殊字符处理问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-29 22:25 |只看该作者 |倒序浏览
有一文件中的制表符需要被替换为^B
sed 's/\\t/^B/g' src.txt > des.txt
OS:AIX 4.3.3 |5.2 SCO 5.05 | 5.06
sh:ksh
结果内容并未发生改变,请知道的朋友不吝赐教,多谢

论坛徽章:
0
2 [报告]
发表于 2005-11-29 22:30 |只看该作者
原帖由 wingofwind 于 2005-11-29 22:25 发表
有一文件中的制表符需要被替换为^B
sed 's/\\t/^B/g' src.txt > des.txt
OS:AIX 4.3.3 |5.2 SCO 5.05 | 5.06
sh:ksh
结果内容并未发生改变,请知道的朋友不吝赐教,多谢


What do you want to..............

sed 's/\t/^B/g'

论坛徽章:
0
3 [报告]
发表于 2005-11-29 22:38 |只看该作者

回复 2楼 dbcat 的帖子

‘\’是特殊字符啊
在正则表达式里得加‘\’转义啊
即使按二楼的说法也同样没有改变啊

论坛徽章:
0
4 [报告]
发表于 2005-11-29 22:38 |只看该作者
tr '\t' '\002' <src.txt > des.txt

论坛徽章:
0
5 [报告]
发表于 2005-11-29 22:41 |只看该作者
谢了三楼的兄弟,tr命令我也会用,只使对这个问题不解才在这里提问求教

论坛徽章:
0
6 [报告]
发表于 2005-11-29 22:50 |只看该作者
s/regexp/replacement/
replacement部分的规则和regexp部分的规则不一样的

论坛徽章:
0
7 [报告]
发表于 2005-11-29 22:57 |只看该作者
原帖由 tigerpower 于 2005-11-29 22:50 发表
s/regexp/replacement/
replacement部分的规则和regexp部分的规则不一样的


但是sed 's/|/^B/g/' src.txt > des.txt就能转换,请解释一下其中的不同,愿闻其详

论坛徽章:
0
8 [报告]
发表于 2005-11-29 23:06 |只看该作者
哈哈,你替换的那个^B不是我替换的那个^B啊
照你7楼的说法,则二楼正解.

[ 本帖最后由 tigerpower 于 2005-11-29 23:13 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2005-11-29 23:44 |只看该作者
原帖由 tigerpower 于 2005-11-29 23:06 发表
哈哈,你替换的那个^B不是我替换的那个^B啊
照你7楼的说法,则二楼正解.

不明白你的意思^B(这是一个控制字符)和0x02是一个字符,有什么不同?
二楼的解释明显违反了正则表达式的文法

论坛徽章:
0
10 [报告]
发表于 2005-11-29 23:50 |只看该作者
你在7楼替换的实际上是\0x5e\0x42,就是字面的'^B'啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP