分页: 1 / 1

sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-16 19:01
shepx
例如我想将 AAA$BBB.CCC 替换成 AAA.DDD
就是把CCC替换成DDD, 把$和.CCC之间的删除。

不太会写shell,搞了半天都不正确,请高手帮个忙。
THX

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-16 19:36
cjxgm

代码: 全选

echo 'AAA$BBB.CCC' | sed 's/\(.*\)\$.*\.CCC\(.*\)/\1.DDD\2/g'

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-16 21:19
jarlyyn
sed "s/aaa.*ccc/aaa\.ddd/"

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-16 22:44
shepx
cjxgm 写了:

代码: 全选

echo 'AAA$BBB.CCC' | sed 's/\(.*\)\$.*\.CCC\(.*\)/\1.DDD\2/g'
验证正解,谢谢1楼。

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-17 8:35
eexpress
没最小匹配的正则,都是没用的。
幸好sed缺省不跨行处理。

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-17 9:11
jarlyyn
eexpress 写了:没最小匹配的正则,都是没用的。
幸好sed缺省不跨行处理。
最小匹配?

懒惰匹配?

sed有啊。

我折腾过。跨行懒惰匹配

么什么问题

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-17 10:13
eexpress
我就是说你们上面的,没体现出来嘛。这应该是最基本要写出来的。lz却认为已经正确了。

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-17 14:44
cjxgm
shepx 写了:验证正解,谢谢1楼
:em34

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-17 15:41
jarlyyn
eexpress 写了:我就是说你们上面的,没体现出来嘛。这应该是最基本要写出来的。lz却认为已经正确了。
问题楼主也没说要懒惰啊……

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-17 21:17
我就是我2
:em20 :em20 :em20
cjxgm 写了:
shepx 写了:验证正解,谢谢1楼
:em34

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-18 1:02
fnan
echo 'AAA$BBB.CCC' | sed 's/\$[^$]*\.CCC/.DDD/g'

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-08-19 14:22
shepx
cjxgm 写了:
shepx 写了:验证正解,谢谢1楼
:em34
E ... 笔误了 。。。 2楼
:em06

Re: sed删除两个关键字之间的文字怎么写

发表于 : 2011-09-03 0:31
我就是我2

代码: 全选

i='AAA$BBB.CCC'
echo ${i/\$*CCC/.DDD}
:em03