Chinaunix

标题: 有关sed正则表达式的问题 [打印本页]

作者: zzbutcher    时间: 2012-12-07 12:44
标题: 有关sed正则表达式的问题
  1. echo "sj_dhk_1_C47SPC300B200toC47SPC300B200.sql"|sed -r 's/.*(C[0-9][0-9]S*P*C*[0-9]*B[0-9][0-9]*)-*t*o*(C[0-9][0-9]S*P*C*[0-9]*B[0-9][0-9]*).*/\1-\2/'
复制代码
为什么结果出来的是C300B200-C47SPC300B200

我想要的结果是C47SPC300B200-C47SPC300B200

跪求指点
作者: waker    时间: 2012-12-07 13:00
  1. echo "sj_dhk_1_C47SPC300B200toC47SPC300B200.sql"|sed -r 's/(.*)(C[0-9][0-9]S*P*C*[0-9]*B[0-9][0-9]*)-*t*o*(C[0-9][0-9]S*P*C*[0-9]*B[0-9][0-9]*).*/\1~~\2-\3/'
复制代码
观察一下?
作者: dn833    时间: 2012-12-07 14:02
sed -r 's/.*改成sed -r 's/.*_
其他照抄试试看
作者: zooyo    时间: 2012-12-07 14:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: yestreenstars    时间: 2012-12-07 19:23
贪婪的正则
作者: Shell_HAT    时间: 2012-12-07 19:27
http://bbs.chinaunix.net/thread-15825-1-1.html
作者: kernel69    时间: 2012-12-07 22:22
这个怎么样?
  1. echo "sj_dhk_1_C47SPC300B200toC47SPC300B200.sql"|perl -F'[_.]' -lane 'print $F[3] if $F[3] =~ s/(\w+)to(\w+)/\1-\2/'
复制代码
回复 1# zzbutcher


   
作者: reyleon    时间: 2012-12-07 22:32
  1. echo "sj_dhk_1_C47SPC300B200toC47SPC300B200.sql"|awk 'BEGIN{FS="_|to|[.]";OFS="-"}{print $(NF-2),$(NF-1)}'
复制代码
用这个可以么?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2