我有3个fasta文件,如下面的
>file_1_head
haszhaskjkjkjkfaiezqbsga
>file_1_body
loizztzezzqieovbahsgzqwqoiropoqiwoioioiweoitwwerweuiruwieurhcabccjashdja
>file_1_tail
mnnbasnbdnztoaosdhgas
我想将它们连接成一个像下面一样的
>file_1
haszhaskjkjkjkfaiezqbsgaloizztzezzqieovbahsgzqwqoiropoqiwoioioiweoitwwerweuiruwieurhcabccjashdjamnnbasnbdnztoaosdhgas
我尝试使用cat命令cat file_1_head.fasta file_1_body.fasta file_1_tail.fasta
,但它并没有像上面那样连接成一行。有没有可能用“awk”请指导我。
答案 0 :(得分:3)
您的意思是您的三个文件具有内容
<强> file_1_head.fasta 强>
>file_1_head
haszhaskjkjkjkfaiezqbsga
<强> file_1_body.fasta 强>
>file_1_body
loizztzezzqieovbahsgzqwqoiropoqiwoioioiweoitwwerweuiruwieurhcabccjashdja
和 file_1_tail.fasta
>file_1_tail
mnnbasnbdnztoaosdhgas
包括其中每个人的名字作为第一行?
然后你可以做
(echo ">file_1"; tail -qn -1 file_1_{head,body,tail}.fasta | tr -d "\n\t ") > file_1.fasta
将 file_1.fasta 设为
>file_1
haszhaskjkjkjkfaiezqbsgaloizztzezzqieovbahsgzqwqoiropoqiwoioioiweoitwwerweuiruwieurhcabccjashdjamnnbasnbdnztoaosdhgas
这也删除了输入中我在逐字复制时输入的行末尾的一些额外空格。
答案 1 :(得分:1)
您只需使用
即可cat file1 file2 file3 | tr -d '\n' > new_file
tr
删除换行符。
编辑:
对于您的特定第一行,请执行
echo file_1 > new_file
cat file1 file2 file3 | tr -d '\n' >> new_file
第一个命令创建一行file_1
的文件。然后cat...
命令只会附加到此文件。
答案 2 :(得分:1)
这个怎么样?
awk 'BEGIN { RS=""} {for (i=1;i<=NF;i++) { printf "%s",$i } }' f1_head f1_body f1_tail