免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2069 | 回复: 8
打印 上一主题 下一主题

如何从一行数据中快速获取所需的数字列,按照一定格式形成所需要的文件内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-02 16:02 |只看该作者 |倒序浏览
有这样一个文件,内容如下:
create.value,value1="31/12/2012",value2="00001",value3="123456789",value4="000000000099999",value5="10TEST",value6="0";

我想得到下面这样的内容:
000000000099999|12345678900001

即:
value4的取值|value3的取值+value2的取值

我用了下面的语句处理了一下,虽然可以达到目的,但我担心这样做的效率不高,请各位出手,看看是否还有其它更优的方法,谢谢
sed -e '/^$/d' filename.txt | awk -F"," '{print $5","$4","$3}' | awk -F"\"" '{print $2"|"$4$6}' >> result.txt

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2010-03-02 16:19 |只看该作者
awk
  1. awk -F '"?[^"]*[=;][^"]*"?' '{print $5"|"$4$3}' urfile
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-03-02 16:25 |只看该作者
  1. awk -F, '{for (i=3;i<=5;i++) {sub(/.*=/,"",$i);gsub(/"/,"",$i)}print $5"|"$4""$3}' file
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-03-02 16:37 |只看该作者

  1. awk -F[\=\"] '{print $12"|"$9$6}' file
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-03-02 16:39 |只看该作者
感谢上面两位
想问一下blackold (黑哥)
"?[^"]*[=;][^"]*"?写的太复杂了,实在是看的不太明白
能简单讲一下么?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2010-03-02 16:42 |只看该作者
回复 5# jyl980431


    严格匹配“非值”部分。

   也可以不用写这么复杂,达到效果即可。

论坛徽章:
0
7 [报告]
发表于 2010-03-02 16:56 |只看该作者
awk -F'"' '{print $8"|"$6$4}' urfile

论坛徽章:
0
8 [报告]
发表于 2010-03-02 17:05 |只看该作者
写个容易理解一些的
sed 's/.*2=\"\([^"]\).*3=\"\([^"]\).*4=\([^"]\).*/\3|\2\1/' yourfile

论坛徽章:
0
9 [报告]
发表于 2010-03-02 19:53 |只看该作者
写个容易理解一些的
sed 's/.*2=\"\([^"]\).*3=\"\([^"]\).*4=\([^"]\).*/\3|\2\1/' yourfile
iori809 发表于 2010-03-02 17:05



    太容易理解了。。。http://bbs.chinaunix.net/images/smilies/default/em32.gif
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP