免费注册 查看新帖 |

Chinaunix

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

请shell高手帮忙,搞定一个格式转换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-28 14:06 |只看该作者 |倒序浏览
小弟最近在看shell,但是功力不到,现在碰到一个问题,自己尝试了sed和awk没搞定,特来CU请教各位大侠:
文本a,内容格式如下:

上海 021
北京 010
武汉 027


需要转换成如下格式:

insert into REPORT (AREA_CODE, HLR_CODE)
values ('上海', '021');
insert into REPORT (AREA_CODE, HLR_CODE)
values ('北京', '010');
insert into REPORT (AREA_CODE, HLR_CODE)
values ('武汉', '027');

多谢了各位了。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2011-12-28 14:19 |只看该作者
回复 1# wuyuwenct

$ echo '上海 021
北京 010
武汉 027' | awk -vk="'" '{print "insert into REPORT (AREA_CODE, HLR_CODE)\nvalues("k$1k","k$2k");"}'
insert into REPORT (AREA_CODE, HLR_CODE)
values('上海','021');
insert into REPORT (AREA_CODE, HLR_CODE)
values('北京','010');
insert into REPORT (AREA_CODE, HLR_CODE)
values('武汉','027');

   

论坛徽章:
0
3 [报告]
发表于 2011-12-28 14:31 |只看该作者
回复 2# jason680


   谢谢老兄, 您的命令管用,但是文件a不止这3行,有243行,格式都是一样,如果用echo的话,不好处理,有没有别的好办法?

论坛徽章:
0
4 [报告]
发表于 2011-12-28 14:33 |只看该作者
刚才犯晕了,2楼的办法后跟文件名即可,谢谢!

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [报告]
发表于 2011-12-28 14:38 |只看该作者
回复 3# wuyuwenct


shell基础十二篇     

论坛徽章:
0
6 [报告]
发表于 2011-12-28 14:50 |只看该作者
学习shell还是要多联系,不然难以做到像老兄这样信手拈来。

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
7 [报告]
发表于 2011-12-28 15:17 |只看该作者
本帖最后由 seesea2517 于 2011-12-28 15:17 编辑
  1. $ cat a.txt
  2. 上海 021
  3. 北京 010
  4. 武汉 027
  5. $ sed "s/ /', '/g;s/\(.*\)/insert into REPORT (AREA_CODE, HLR_CODE)\nvalues (\1);/" a.txt
  6. insert into REPORT (AREA_CODE, HLR_CODE)
  7. values (上海', '021);
  8. insert into REPORT (AREA_CODE, HLR_CODE)
  9. values (北京', '010);
  10. insert into REPORT (AREA_CODE, HLR_CODE)
  11. values (武汉', '027);
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [报告]
发表于 2011-12-28 15:23 |只看该作者
回复 7# seesea2517

' 少了.....
values ('上海', '021');
values (上海', '021);   
dragon23452345 该用户已被删除
9 [报告]
发表于 2011-12-28 16:46 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP