免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1484 | 回复: 9

[文本处理] 如何取出完整的某几列 [复制链接]

论坛徽章:
0
发表于 2016-10-31 20:12 |显示全部楼层
有点问题还是想不明白,所以来请教大神,是这样的
a.txt 文件如下:9列性质,tab键分隔

#Term        Database        ID        Input number        Background number        P-Value        Corrected P-Value        Input        Hyperlink
Ribosome        KEGG PATHWAY        hsa03010        3        136        6.50476916193e-05        0.0145387534924        ENSG00000140988|ENSG00000167526|ENSG00000164587        http://www.genome.jp/kegg-bin/sh ... 9red/hsa:6137%09red
Fructose and mannose metabolism        KEGG PATHWAY        hsa00051        1        33        0.0194561208516        0.151097344678        ENSG00000149476        http://www.genome.jp/kegg-bin/show_pathway?hsa00051/hsa:26007%09red
Ether lipid metabolism        KEGG PATHWAY        hsa00565        1        46        0.0268014079403        0.171529010818        ENSG00000166428        http://www.genome.jp/kegg-bin/sh ... 65/hsa:122618%09red


我只想取其中的某几列去作图,但是,用awk命令的时候会出现如下情况:
cat a.txt|awk -v OFS="\t" '{print $1,$2}'|head -4
#Term Database
Ribosome KEGG
Fructose and
Ether lipid
不完整啊,想求教大神有什么办法???或者说问题出在哪里为避免混杂,我上传了附件,,,,抱歉,问题有点多,给各位带去诸多不便。

最终的形式应该是这样的:
#Term        Database        ID       
Ribosome        KEGG PATHWAY       
Fructose and mannose metabolism        KEGG PATHWAY       
Ether lipid metabolism        KEGG PATHWAY       



a.zip (582 Bytes, 下载次数: 13)

论坛徽章:
2
操作系统版块每日发帖之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之八一
日期:2016-05-18 15:38:22
发表于 2016-11-01 14:08 |显示全部楼层
Fructose and mannose metabolism中间是空格,Fructose and mannose metabolism跟KEGG PATHWAY中间是hi制表符的话,
  1. cat a.txt|awk -v FS="\t" '{print $1,$2}'|head -4
复制代码
就可以了。但是你这个文本我复制进去好像不行。
  1. cat 2.txt
复制代码

1       tab     tab2
2       tab22   tab33
3 4 5   3kongge4konge5  3kongge4kongge5
  1. cat 2.txt |awk '{print $1","$2}'
复制代码

1,tab
2,tab22
3,4
  1. cat 2.txt |awk -v FS='\t' '{print $1","$2}'
复制代码

1,tab
2,tab22
3 4 5,3kongge4konge5

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2016-11-01 14:31 |显示全部楼层

  1. awk -F"\t" 'NR<5{print $1,$2}' OFS="@" a.txt|column -ts@
复制代码

?

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2016-11-01 18:09 |显示全部楼层
  1. perl -nle '@a=/\S+(?: \S+)*/g;print "@a[0,1]"' f
复制代码

论坛徽章:
1
15-16赛季CBA联赛之吉林
日期:2018-01-06 16:35:38
发表于 2016-11-01 22:07 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2016-11-01 22:34 |显示全部楼层
用 \t 应该可以将记录分割到一个数组中, 指定索引进行打印就行了.

论坛徽章:
0
发表于 2016-11-10 16:38 |显示全部楼层
回复 2# 287380917

谢谢这位大神详细的解答,真心感谢

论坛徽章:
0
发表于 2016-11-10 16:40 |显示全部楼层
回复 3# moperyblue

谢谢大神你每次都予以帮助,感谢

论坛徽章:
0
发表于 2016-11-10 16:40 |显示全部楼层
回复 5# Lemon_乐

O(∩_∩)O谢谢

论坛徽章:
0
发表于 2016-11-10 16:43 |显示全部楼层
回复 4# sunzhiguolu

嗯啊,O(∩_∩)O谢谢大神每一次的帮助,这么久了,一直感觉自己入错行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP