免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么处理这样的数据 [复制链接]

论坛徽章:
8
天秤座
日期:2013-09-02 09:10:44CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-11-20 16:38:31巨蟹座
日期:2013-12-18 13:03:34天秤座
日期:2013-12-31 13:28:40卯兔
日期:2014-01-22 17:09:40技术图书徽章
日期:2014-02-27 20:31:47巳蛇
日期:2014-09-22 10:25:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-16 11:30 |只看该作者 |倒序浏览
本帖最后由 dzminglong 于 2014-02-16 11:31 编辑

  本人刚接触shell,我手上有一段数据,大概是这样的
  1. 123456
  2. 123456
  3. 123456
复制代码
我现在是这样的,想把这样的数据变成 ('123456','123456','123456')
这样的形式,请教下该怎么写?

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
2 [报告]
发表于 2014-02-16 11:48 |只看该作者
  1. awk '{s=s?s",\047"$0"\047":"\047"$0"\047"}END{print "("s")"}'
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-02-16 12:00 |只看该作者
回复 1# dzminglong
原文中的括号也是你想要的么?不是的话可以从代码中自己删去~
  1. awk 'BEGIN{RS="";OFS="\047,\047"}{NF=NF;printf "(\047"$0"\047)"}'
复制代码

论坛徽章:
8
天秤座
日期:2013-09-02 09:10:44CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-11-20 16:38:31巨蟹座
日期:2013-12-18 13:03:34天秤座
日期:2013-12-31 13:28:40卯兔
日期:2014-01-22 17:09:40技术图书徽章
日期:2014-02-27 20:31:47巳蛇
日期:2014-09-22 10:25:32
4 [报告]
发表于 2014-02-16 12:02 |只看该作者
回复 2# elu_ligao


    谢谢

论坛徽章:
8
天秤座
日期:2013-09-02 09:10:44CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-11-20 16:38:31巨蟹座
日期:2013-12-18 13:03:34天秤座
日期:2013-12-31 13:28:40卯兔
日期:2014-01-22 17:09:40技术图书徽章
日期:2014-02-27 20:31:47巳蛇
日期:2014-09-22 10:25:32
5 [报告]
发表于 2014-02-16 12:03 |只看该作者
回复 3# runintostar


    是我要的,谢了

论坛徽章:
8
天秤座
日期:2013-09-02 09:10:44CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-11-20 16:38:31巨蟹座
日期:2013-12-18 13:03:34天秤座
日期:2013-12-31 13:28:40卯兔
日期:2014-01-22 17:09:40技术图书徽章
日期:2014-02-27 20:31:47巳蛇
日期:2014-09-22 10:25:32
6 [报告]
发表于 2014-02-16 13:25 |只看该作者
本帖最后由 dzminglong 于 2014-02-16 13:27 编辑

不好意思,怪我没表达好,字段是11位数字的,执行后就变成了    ')'01403617178   

论坛徽章:
1
白羊座
日期:2013-12-29 17:58:28
7 [报告]
发表于 2014-02-16 13:38 |只看该作者
  1. sed ':a;$!{N;ba};s#\n#'"','"'#g;s/.*/('"'&'"')/' file

  2. ('123456','123456','123456')
复制代码

论坛徽章:
8
天秤座
日期:2013-09-02 09:10:44CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-11-20 16:38:31巨蟹座
日期:2013-12-18 13:03:34天秤座
日期:2013-12-31 13:28:40卯兔
日期:2014-01-22 17:09:40技术图书徽章
日期:2014-02-27 20:31:47巳蛇
日期:2014-09-22 10:25:32
8 [报告]
发表于 2014-02-16 13:44 |只看该作者
回复 7# newoz
  1. 13452132111
  2. 13452132111
  3. 13452132111
  4. 13452132111
  5. 13452132111
  6. 13452132111
  7. 13452132111
复制代码
数据是这样的,是我理解有问题,以为格式一样就通用,我一开始举例举措了,不是6位数字的

论坛徽章:
1
白羊座
日期:2013-12-29 17:58:28
9 [报告]
发表于 2014-02-16 13:45 |只看该作者
elu_ligao 发表于 2014-02-16 11:48


单引号可以用变量引入,这样可以避免输入太多的\047
  1. awk -v a="'" '{s=s?s "," a $0 a:a $0 a}END{print "("s")"}' file
复制代码

论坛徽章:
1
白羊座
日期:2013-12-29 17:58:28
10 [报告]
发表于 2014-02-16 13:47 |只看该作者
dzminglong 发表于 2014-02-16 13:44
回复 7# newoz 数据是这样的,是我理解有问题,以为格式一样就通用,我一开始举例举措了,不是6位数字的


所有上面的命令和你的数据中的长度没有关系。 如果出错,请给出错的提示信息或者贴出你的原文件。

最好用时下面的输出, 感觉你的文件中有特殊字符
  1. cat -A file
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP