当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : sed的正则替换问题
帖子发表于 : 2012-03-11 14:48 
头像

注册: 2012-01-29 9:30
帖子: 169
系统: Fedora19 Xfce
送出感谢: 0 次
接收感谢: 1
目的是删除所有的 [ 符号跟 ] ,如下结果,何解?

$ cat t
[
]
[123]
sdfsdf
[sdfsdf
sdfsdf]
[]
$ cat t | sed 's/(\[|\])?//g'
[
]
[123]
sdfsdf
[sdfsdf
sdfsdf]
[]


_________________
===============================
XP XP XP XP XP XP XP XP XP XP XP XP
??现在的人问问题都是让人来猜吗??
XP XP XP XP XP XP XP XP XP XP XP XP
===============================


页首
 用户资料  
 
2 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-11 15:04 

注册: 2007-10-22 16:54
帖子: 344
送出感谢: 0 次
接收感谢: 8
vim 中我知道这样做:
:%s/[\[\]]//gc


页首
 用户资料  
 
3 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-11 15:08 

注册: 2007-10-22 16:54
帖子: 344
送出感谢: 0 次
接收感谢: 8
代码:
cat t | sed 's/\[\|\]//g'


页首
 用户资料  
 
4 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-11 15:15 
头像

注册: 2012-01-29 9:30
帖子: 169
系统: Fedora19 Xfce
送出感谢: 0 次
接收感谢: 1
wutong 写道:
代码:
cat t | sed 's/\[\|\]//g'


为什么sed这么多符号要转义呢?

看来是正则不太一样阿


_________________
===============================
XP XP XP XP XP XP XP XP XP XP XP XP
??现在的人问问题都是让人来猜吗??
XP XP XP XP XP XP XP XP XP XP XP XP
===============================


页首
 用户资料  
 
5 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-11 15:26 

注册: 2012-02-13 10:58
帖子: 19
送出感谢: 4
接收感谢: 0 次
或者:
代码:
sed -e 's/\[//g' -e 's/\]//g' filename


或者:
代码:
sed 's/\W//g' filename


最后由 Jr.z 编辑于 2012-03-11 21:37,总共编辑了 1 次

页首
 用户资料  
 
6 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-11 15:27 

注册: 2012-02-13 10:58
帖子: 19
送出感谢: 4
接收感谢: 0 次
guaicai 写道:
wutong 写道:
代码:
cat t | sed 's/\[\|\]//g'


为什么sed这么多符号要转义呢?

看来是正则不太一样阿


其实不多 ,也就十几个吧


页首
 用户资料  
 
7 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-11 19:13 

注册: 2009-07-01 22:04
帖子: 919
送出感谢: 0 次
接收感谢: 13
sed 's/\(\[\|\]\)//g' t
sed -r 's/\[|\]//g' t


_________________
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-12 11:22 
头像

注册: 2012-02-07 23:08
帖子: 45
送出感谢: 1
接收感谢: 2
guaicai 写道:
目的是删除所有的 [ 符号跟 ] ,如下结果,何解?

$ cat t
[
]
[123]
sdfsdf
[sdfsdf
sdfsdf]
[]
$ cat t | sed 's/(\[|\])?//g'
[
]
[123]
sdfsdf
[sdfsdf
sdfsdf]
[]

代码:
sed -e 's/\]//g;s/\[//g' tfile


_________________
在这里,问题比答案更抢手。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: sed的正则替换问题
帖子发表于 : 2012-03-13 12:34 
头像

注册: 2011-11-05 18:53
帖子: 158
地址: 南极圈
送出感谢: 0 次
接收感谢: 7
也可以避免用\转义
代码:
sed 's/[][]//g' t


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译