免费注册 查看新帖 |

Chinaunix

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

[文本处理] SQL查询输出格式化处理,求助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-28 09:44 |只看该作者 |倒序浏览
本帖最后由 鸟哥のlinux 于 2013-10-28 10:00 编辑

在shell 中有一个查询:
select id,name from eam_resource where name like '%E10337%' and fsystem='false';




shell输出到 /tmp/1.txt文本内容为:

# cat /tmp/1.txt
44828 | AO01-15 HQ Agent 4.4.0 44833 | AO01-15 Linux File System /dev/sda5 mounted on / (local/ext3) 44834 | AO01-15 Linux File System /dev/sda1 mounted on /boot (local/ext3) 44835 | AO01-15 Linux File System /dev/sda7 mounted on /home (local/ext3) 44836 | AO01-15 Linux File System /dev/sda3 mounted on /usr (local/ext3) 44837 | AO01-15 Linux File System /dev/sda2 mounted on /var/lib (local/ext3) 44838 | AO01-15 Linux File System /dev/sdb1 mounted on /backup (local/ext3) 44839 | AO01-15 Linux CPU 1 (1861Mhz Intel Xeon) 44840 | AO01-15 Linux CPU 2 (1861Mhz Intel Xeon) 44841 | AO01-15 Linux CPU 3 (1861Mhz Intel Xeon) 44842 | AO01-15 Linux CPU 4 (1861Mhz Intel Xeon) 44843 | AO01-15 Linux sshd Process 44844 | AO01-15 Linux Network Interface lo (loopback) 44845 | AO01-15 Linux Network Interface eth0 (ethernet) 44846 | AO01-15 Linux Network Interface eth1 (ethernet) 44826 | AO01-15

现在要输出这样的格式:

"22994":"E10337", "22995":"E10337 HQ Agent 4.4.0", "23000":"E10337 Linux CPU 1 (2261Mhz Intel Xeon)" ...

求支招~在此先谢了!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-10-28 10:07 |只看该作者
本帖最后由 关阴月飞 于 2013-10-28 10:13 编辑

目测一下:
直接把输出用管道传给AWK:
  1. awk -vORS=, '{print "\042"$1"\042:\042"$2"\042"}'
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
3 [报告]
发表于 2013-10-28 10:08 |只看该作者
shell输出到 /tmp/1.txt文本内容为

什么数据库?
把你的完整代码贴出来看看

论坛徽章:
0
4 [报告]
发表于 2013-10-28 10:19 |只看该作者
回复 3# Shell_HAT

PostgreSQL  SHELL其中代码为:
  1. #!/bin/bash
  2. SQL=`psql -h 192.168.137.254  -p 5432  -U admin_user admin_database -q -t -c  "select id,name from eam_resource where name like '%E10337%' and fsystem='false';"`
复制代码
谢谢~

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
5 [报告]
发表于 2013-10-28 10:24 |只看该作者
回复 4# 鸟哥のlinux


导到文件后,全变成了一行了??   

论坛徽章:
0
6 [报告]
发表于 2013-10-28 10:33 |只看该作者
回复 5# 关阴月飞

是的
   

论坛徽章:
0
7 [报告]
发表于 2013-10-28 10:33 |只看该作者
回复 5# 关阴月飞

是的
   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
8 [报告]
发表于 2013-10-28 12:38 |只看该作者
回复 7# 鸟哥のlinux

试试这样合不合要求:
  1. awk --re-interval -vRS='[0-9]{5} +\\|'  'NF+=0{printf "\042"a "\042"$0"\042,"}{sub(/ +\|/,"\042:",RT);a=RT}'  urfile  
复制代码

论坛徽章:
0
9 [报告]
发表于 2013-10-29 14:59 |只看该作者
回复 8# 关阴月飞

非常感谢
我现在得出的结果是:
  1. "45297":"SND-0239","45300":"SND-0239 HQ Agent 4.6.6","45303":"SND-0239 Linux File System /dev/mapper/VolGroup00-LogVol00 mounted on / (local/ext3)","45304":"SND-0239 Linux File System /dev/sda1 mounted on /boot (local/ext3)","45305":"SND-0239 Linux Network Interface lo (loopback)","45306":"SND-0239 Linux Network Interface eth0 (ethernet)","45307":"SND-0239 Linux Network Interface eth1 (ethernet)","45308":"SND-0239 Linux CPU 1 (2128Mhz Intel Xeon)","45309":"SND-0239 Linux CPU 2 (2128Mhz Intel Xeon)","45310":"SND-0239 Linux CPU 3 (2128Mhz Intel Xeon)","45311":"SND-0239 Linux CPU 4 (2128Mhz Intel Xeon)","45312":"SND-0239 Linux sshd Process",
复制代码
加入要在始末加上{},最终显示为:
  1. {"45297":"SND-0239","45300":"SND-0239 HQ Agent 4.6.6","45303":"SND-0239 Linux File System /dev/mapper/VolGroup00-LogVol00 mounted on / (local/ext3)","45304":"SND-0239 Linux File System /dev/sda1 mounted on /boot (local/ext3)","45305":"SND-0239 Linux Network Interface lo (loopback)","45306":"SND-0239 Linux Network Interface eth0 (ethernet)","45307":"SND-0239 Linux Network Interface eth1 (ethernet)","45308":"SND-0239 Linux CPU 1 (2128Mhz Intel Xeon)","45309":"SND-0239 Linux CPU 2 (2128Mhz Intel Xeon)","45310":"SND-0239 Linux CPU 3 (2128Mhz Intel Xeon)","45311":"SND-0239 Linux CPU 4 (2128Mhz Intel Xeon)","45312":"SND-0239 Linux sshd Process", }
复制代码
该怎么处理呢?

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
10 [报告]
发表于 2013-10-29 15:02 |只看该作者
本帖最后由 关阴月飞 于 2013-10-29 15:28 编辑

回复 9# 鸟哥のlinux

  1. awk --re-interval -vRS='[0-9]{5} +\\|'  'BEGIN{printf "{"}NF+=0{printf "\042"a "\042"$0"\042,"}{sub(/ +\|/,"\042:",RT);a=RT}END{print "}"}'  urfile  
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP