免费注册 查看新帖 |

Chinaunix

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

[文本处理] 数据库里面提取出来的字段存入文件怎么就不是一个字段了 [复制链接]

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-18 15:44 |只看该作者 |倒序浏览
5可用积分
数据库里面有个字段是书籍名称:比如一本书叫  FORK ME! ,字段属性为varchar,导出到文件后,如果取$1的话就只会取到FORK,这个应该怎么解决?这个字段该怎么提前啊?

最佳答案

查看完整内容

因为你的的 name 有空格嘛 FORK ME,awk 默认是以空格做为分隔,所以你需要更换分隔符。另外你要什么取什么不就行了,还要弄一堆不要的内容再来过滤干嘛?

论坛徽章:
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
2 [报告]
发表于 2012-09-18 15:44 |只看该作者
本帖最后由 seesea2517 于 2012-09-19 10:20 编辑

因为你的的 name 有空格嘛 FORK ME,awk 默认是以空格做为分隔,所以你需要更换分隔符。

另外你要什么取什么不就行了,还要弄一堆不要的内容再来过滤干嘛?
  1. [SeeSea@UC ~]$ mysql -uroot -e 'select id, name from testtest.ta where id = 1;'
  2. +----+---------+
  3. | id | name    |
  4. +----+---------+
  5. |  1 | FORK ME |
  6. +----+---------+

  7. [SeeSea@UC ~]$ mysql -uroot -e 'select name from testtest.ta where id = 1;'
  8. +---------+
  9. | name    |
  10. +---------+
  11. | FORK ME |
  12. +---------+

  13. # 写文件方式
  14. [SeeSea@UC ~]$ mysql -uroot --column-name=0 -e 'select name from testtest.ta where id = 1;' > book.txt

  15. [SeeSea@UC ~]$ cat book.txt
  16. FORK ME

  17. # 存变量方式
  18. [SeeSea@UC ~]$ bookname=`mysql -uroot --column-name=0 -e 'select name from testtest.ta where id = 1;'`

  19. [SeeSea@UC ~]$ echo $bookname
  20. FORK ME
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-09-18 15:48 |只看该作者
等楼下翻译吧 看不懂你想做什么

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
4 [报告]
发表于 2012-09-18 15:56 |只看该作者
回复 2# dahaoshanhe

数据库
-------------------
|    id  |   name   |
|    1  | FORK ME |
- ------------------
  shell:

bookname=`mysql ******* `(提取了FORK ME)
echo ${bookname} > book.txt
cat book.txt | awk `{print $1}`
结果只会得到FORK,我想得到的是FORK ME,不知道描述清楚没有

论坛徽章:
0
5 [报告]
发表于 2012-09-18 16:01 |只看该作者
回复 3# rubylc_unix

awk '{print substr($0,1,7)}'
   

论坛徽章:
8
双子座
日期:2013-08-31 07:37:12金牛座
日期:2013-09-09 18:49:12处女座
日期:2013-09-23 11:43:14处女座
日期:2013-10-09 19:48:21狮子座
日期:2014-03-24 18:22:12丑牛
日期:2014-04-22 22:07:51申猴
日期:2014-06-12 21:54:13双鱼座
日期:2014-06-13 21:52:31
6 [报告]
发表于 2012-09-18 16:06 |只看该作者
直接awk '{print $0}' 不行吗?回复 4# kk5234


   

论坛徽章:
0
7 [报告]
发表于 2012-09-18 16:10 |只看该作者
回复 5# kernel69

汗,我可能误解了。
   

论坛徽章:
0
8 [报告]
发表于 2012-09-18 16:33 |只看该作者
  1. awk -F"|" '/F/{print $(NF-1)}' file
复制代码
是这个意思么?

论坛徽章:
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
9 [报告]
发表于 2012-09-18 20:03 |只看该作者
回复 3# rubylc_unix
  1. bookname=`mysql ******* `(提取了FORK ME)
  2. echo ${bookname} > book.txt
  3. cat book.txt | awk '{print $0}'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP