【发布时间】:2020-07-19 00:53:00
【问题描述】:
我这里有一个大文件
https://www.dropbox.com/s/ujesog1yv5yzbes/vep.txt?dl=0
从这个文件中我需要类似的东西
Uploaded_variation Chromosome Location Ref Allele gene
1_3407069_C/T 1 3407069 C T C1orf159
1_26226650_G/A 1 26226650 G A C1orf159
1_41950247_C/T 1 41950247 C T C1orf159
我想要的文件的样本在这里
https://www.dropbox.com/s/4vnhng5vno11ct1/WHAT_I_need.txt?dl=0
我发现这个脚本给了我我想要的输出的一部分,但是一团糟
awk '{split($1,a,"_"); split(a[3],b,"/"); print a[1],a[2],b[1],b[2],$0}' file.vep.txt | awk '{split($18,a,";"); split(a[2],b,"="); print b[2],$0}'> Jane_script_output.txt
https://www.dropbox.com/s/6sjucbrb49l93xl/Jane_script_output.txt?dl=0
在这个脚本的这个输出中我有
#Uploaded variation #Uploaded_variation
1 883477 G T 1_883477_G/T
PRDM16 1 3125744 A G 1_3125744_A/G
PRDM16 1 3125744 A G 1_3125744_A/G
PRDM16 1 3125744 A G 1_3125744_A/G
我不知道这个脚本如何给我按列输出而不是这个混乱
【问题讨论】:
-
为什么你只接受 bash 或 R 的答案,而不接受 awk 的答案?最好只指定目标,而不是试图指定工具...虽然比这更好展示你自己的尝试,所以你问别人如何用你自己的努力解决问题,而不仅仅是要求某人为您编写程序(我们通常拒绝这样做)。
-
顺便说一句——每个文件有多少条目,它们是如何分开的?转换只有一条记录长的文件与任意长度的文件是非常不同的。确保您提供了做出可测试答案所需的一切。
-
另外,请确保您的输入和输出彼此精确匹配。这看起来像是完全不同的符号。
-
再重复一遍:确保问题中显示的输出是您希望程序在给出示例输入时输出的内容。您肯定不希望它以
SYMBOL=NOC2L作为输入和输出SYMBOL=C1orf159?如果作为问题的一部分,我们没有来自给定输入的逐字节正确的预期输出,那么任何人都如何确定他们正在正确地测试他们的答案? -
类似地,如果您的输入文件实际上有多个输入记录,请确保样本输入和样本输出都是如此,这样构建答案的人就知道不同记录之间的界限将如何表现。这仍然不太可能受到好评,因为它要求某人为您完成工作,而不是询问如何解决您在尝试完成自己的工作时遇到的特定问题,但至少这会让它可回答,即使它违反了其他规则。
标签: string awk data-manipulation