免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: ypxns
打印 上一主题 下一主题

提取字符串(请教) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-03-03 14:25 |只看该作者
我将问题发在了同一个帖子~!希望大家能够提供些好的方法和思路~!

论坛徽章:
0
12 [报告]
发表于 2009-03-03 14:56 |只看该作者

回复 #11 ypxns 的帖子

awk -F":" '{printf "%d\t%s\t",$1,substr($2,1,1);split($NF,array," ");print array[1]}' file

对于://规则不太明确,不太好匹配

论坛徽章:
0
13 [报告]
发表于 2009-03-03 14:58 |只看该作者
awk -F: '{$1=$1+0;$2=substr($2,1,1)}{print $1,$2,$NF}'
半成品,有一段不好处理.

论坛徽章:
0
14 [报告]
发表于 2009-03-03 15:19 |只看该作者
[test@erpdataserver ~]$ sed -r 's/([^:]*).(.)[^:]*(:[^:]*){2}.*)/\1 \2 \4/g' 1
009 a 136.250000
010 a 144.250000
012 a 160.250000
013 a 168.250000
014 a 176.250
015 a 184.250000
016 a 192.250000
018 a 208.250
020 a 224.250
103 f /test/www/html/CCTV-1.wmv
123 n /ftp.music.com/11.mp3
214 f /test/Coral_Reef_Adventure_1080.wmv -loop 0
254 f /media/disk/hdtv.ts -vo xvmc -vc ffmpeg12mc
901 r tv:// -tv driver=v4l:width=320:height=240:device=/dev/video1

论坛徽章:
0
15 [报告]
发表于 2009-03-03 15:31 |只看该作者
二步走:
先把前面4个:变成==号
然后取有用的字段
sed 's/:/==/;s/:/==/;s/:/==/;s/:/==/' file|awk -F"==" -v OFS="\t" '{printf "%d %s %s\n", $1,$2,$NF;}'

论坛徽章:
0
16 [报告]
发表于 2009-03-03 15:32 |只看该作者
改好了,可以符合要求:
awk -F":" '{if($0!~/:\/\//)
                    {printf "%d\t%s\t",$1,substr($2,1,1);split($NF,array," ");print array[1]}
                  else
                    {printf "%d\t%s\t%s",$1,substr($2,1,1),$5
                      for(i=6;i<=NF;i++)
                           printf ":"$i
                      printf "\n"
                     }
}' file

论坛徽章:
0
17 [报告]
发表于 2009-03-03 15:46 |只看该作者
Thanks for everybody ~@

论坛徽章:
0
18 [报告]
发表于 2009-03-03 15:51 |只看该作者
原帖由 我是DBA 于 2009-3-3 15:19 发表
[test@erpdataserver ~]$ sed -r 's/([^:]*).(.)[^:]*(:[^:]*){2}.*)/\1 \2 \4/g' 1
009 a 136.250000
010 a 144.250000
012 a 160.250000
013 a 168.250000
014 a 176.250
015 a 184.250000
016 a 1 ...


sed -r 's/([^:]*).(.)[^:]*(:[^:]*){2}.*)/\1 \2 \4/g'  file
可以解释一下吗?有点看不懂~!

论坛徽章:
0
19 [报告]
发表于 2009-03-03 16:03 |只看该作者

回复 #18 ypxns 的帖子

看到这么长的代码都吐了,
我不承认是我写的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP