Bash:转换4列文本交错行(制表符分隔列到FASTQ文件)

时间:2015-06-20 23:51:55

标签: bash awk bioinformatics fastq

我需要将每个条目的4列文件转换为4行。该文件以制表符分隔。

当前文件按以下格式排列,每行代表一条记录/序列(有数百万条这样的行):

@SRR1012345.1   NCAATATCGTGG    #4=DDFFFHDHH    HWI-ST823:136:C24YTACXX
@SRR1012346.1   GATTACAGATCT    #4=DDFFFHDHH    HWI-ST823:136:C22YTAGXX

我需要重新排列这个,以便将四列显示为4行:

@SRR1012345.1
NCAATATCGTGG
#4=DDFFFHDHH
HWI-ST823:136:C24YTACXX
@SRR1012346.1
GATTACAGATCT
#4=DDFFFHDHH
HWI-ST823:136:C22YTAGXX

最好的方法是做什么,最好是用bash one-liner?谢谢你的帮助!

3 个答案:

答案 0 :(得分:4)

您可以使用tr

< file tr '\t' '\n' > newfile

答案 1 :(得分:2)

非常清楚在这里使用awk:

awk '{print $1; print $2; print $3; print $4}' file

答案 2 :(得分:2)

$ awk -v OFS='\n' '{$1=$1}1' file
@SRR1012345.1
NCAATATCGTGG
#4=DDFFFHDHH
HWI-ST823:136:C24YTACXX
@SRR1012346.1
GATTACAGATCT
#4=DDFFFHDHH
HWI-ST823:136:C22YTAGXX