我有一个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”。我该如何解决这个问题?
答案 0 :(得分:1)
使用sed进行简单替换。
$ sed 's/^\(@[^[:blank:]]*\)[[:blank:]]\+/\1_/' file
@SRR1463109.1_HWI-ST740_1:1:1101:1222:2116/1
AAACTAAAATTTTAAAGCATCTGACTGTACTCATGGTGGGTACACGTGACTAGAAATCTATCACACTAACATGAGGGTCAGCTCCACGCTCTGTGACTTCT
+
HHHHHFHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHCEHHDDDDBFGGGBGHHHHFHHHHHF;EF?FDCD?GGCGGFFGFGHHEGHGGFFGEEDHH