2015-04-09 1 views
0

У меня есть файл, который имеет fastq читает в следующем формате:Неожиданное AWK разборе

@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 

I новичок в 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

Эй, это выглядит как _my_ genome :-) – paxdiablo

ответ

1

Используйте sed для простой замены.

$ sed 's/^\(@[^[:blank:]]*\)[[:blank:]]\+/\1_/' file 
@SRR1463109.1_HWI-ST740_1:1:1101:1222:2116/1 
AAACTAAAATTTTAAAGCATCTGACTGTACTCATGGTGGGTACACGTGACTAGAAATCTATCACACTAACATGAGGGTCAGCTCCACGCTCTGTGACTTCT 
+ 
HHHHHFHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHCEHHDDDDBFGGGBGHHHHFHHHHHF;EF?FDCD?GGCGGFFGFGHHEGHGGFFGEEDHH