分页: 1 / 1

sed的正则替换问题

发表于 : 2012-03-11 14:48
guaicai
目的是删除所有的 [ 符号跟 ] ,如下结果,何解?

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

Re: sed的正则替换问题

发表于 : 2012-03-11 15:04
wutong
vim 中我知道这样做:
:%s/[\[\]]//gc

Re: sed的正则替换问题

发表于 : 2012-03-11 15:08
wutong

代码: 全选

cat t | sed 's/\[\|\]//g'

Re: sed的正则替换问题

发表于 : 2012-03-11 15:15
guaicai
wutong 写了:

代码: 全选

cat t | sed 's/\[\|\]//g'
为什么sed这么多符号要转义呢?

看来是正则不太一样阿

Re: sed的正则替换问题

发表于 : 2012-03-11 15:26
Jr.z
或者:

代码: 全选

sed -e 's/\[//g' -e 's/\]//g' filename
或者:

代码: 全选

sed 's/\W//g' filename

Re: sed的正则替换问题

发表于 : 2012-03-11 15:27
Jr.z
guaicai 写了:
wutong 写了:

代码: 全选

cat t | sed 's/\[\|\]//g'
为什么sed这么多符号要转义呢?

看来是正则不太一样阿
其实不多 ,也就十几个吧

Re: sed的正则替换问题

发表于 : 2012-03-11 19:13
fnan
sed 's/\(\[\|\]\)//g' t
sed -r 's/\[|\]//g' t

Re: sed的正则替换问题

发表于 : 2012-03-12 11:22
Think1st
guaicai 写了:目的是删除所有的 [ 符号跟 ] ,如下结果,何解?

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

代码: 全选

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

Re: sed的正则替换问题

发表于 : 2012-03-13 12:34
josephyoung
也可以避免用\转义

代码: 全选

sed 's/[][]//g' t