0

我有一个 fastq 文件,它的格式如下:

@SRR1463109.1 HWI-ST740_1:1:1101:1222:2116/1
AAACTAAAATTTTAAAGCATCTGACTGTACTCATGGTGGGTACACGTGACTAGAAATCTATCACACTAACATGAGGGTCAGCTCCACGCTCTGTGACTTCT
+
HHHHHFHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHCEHHDDDDBFGGGBGHHHHFHHHHHF;EF?FDCD?GGCGGFFGFGHHEGHGGFFGEEDHHG

我需要删除@xxxx 单词后的空格,使其看起来像

@SRR1463109.1_HWI-ST740_1:1:1101:1222:2116/1
AAACTAAAATTTTAAAGCATCTGACTGTACTCATGGTGGGTACACGTGACTAGAAATCTATCACACTAACATGAGGGTCAGCTCCACGCTCTGTGACTTCT
+
HHHHHFHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHCEHHDDDDBFGGGBGHHHHFHHHHHF;EF?FDCD?GGCGGFFGFGHHEGHGGFFGEEDHHG

我是 awk 的新手,但到目前为止我有

awk '{ gsub("^@([a-z]|[A-Z])*", $1"_"$2, $1); $2=""; print }' test.fastq

结果是

@SRR1463109.1_HWI-ST740_1:1:1101:1222:2116/11463109.1
AAACTAAAATTTTAAAGCATCTGACTGTACTCATGGTGGGTACACGTGACTAGAAATCTATCACACTAACATGAGGGTCAGCTCCACGCTCTGTGACTTCT
+
HHHHHFHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHCEHHDDDDBFGGGBGHHHHFHHHHHF;EF?FDCD?GGCGGFFGFGHHEGHGGFFGEEDHHG

该行的最后一部分被弄乱了,可能是因为文本中的“/1”。我怎样才能解决这个问题?

4

1 回答 1

1

使用 sed 进行简单替换。

$ sed 's/^\(@[^[:blank:]]*\)[[:blank:]]\+/\1_/' file
@SRR1463109.1_HWI-ST740_1:1:1101:1222:2116/1
AAACTAAAATTTTAAAGCATCTGACTGTACTCATGGTGGGTACACGTGACTAGAAATCTATCACACTAACATGAGGGTCAGCTCCACGCTCTGTGACTTCT
+
HHHHHFHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHCEHHDDDDBFGGGBGHHHHFHHHHHF;EF?FDCD?GGCGGFFGFGHHEGHGGFFGEEDHH
于 2015-04-09T06:40:46.717 回答