Merge multiple lines in one line

Hi guys,

So i have a input file with several sequences aligned (fasta)

>NC_005930 241 bp
MNMINIFIINNIFDQFIPVKLSIFSLTSVGSIIA
LSWVWINTKTHWAISRSNTP-SLLLNSL
WTLLITNL-NEKTNPWAPWLFSLFLLCFSFNIMSLI-PYTF-SQ
TSHLSFTFGLSLPIWIMVNIAGFKNNWKKKISHLLPQGTPIYLVPVMII
IETISLFIQPLTLGFRLGANLLAGHLLIFLCSCTIWE
AINYNIYL-GTISFSLILVLLILEIAVAFIQATVFLILSKNYLEENIN-
>NC_000425 241 bp
MNMINIFIINNIFDQFIPVKLSIFSLTSVGSIIA
LSWVWINTKTHWAISRSNTP-SLLLNSL
WTLLITNL-NEKTNPWAPWLFSLFLLCFSFNIMSLI-PYTF-SQ
TSHLSFTFGLSLPIWIMVNIAGFKNNWKKKISHLLPQGTPIYLVPVMII
IETISLFIQPLTLGFRLGANLLAGHLLIFLCSCTIWE
AINYNIYL-GTISFSLILVLLILEIAVAFIQATVFLILSKNYLEENIN-
.
.
.

and i want get on output:

>NC_005930 241 bp
MNMINIFIINNIFDQFIPVKLSIFSLTSVGSIIALSWVWINTKTHWAISRSNTPSLLLNSLWTLLITNLNEKTNPWAPWLFSLFLLCFSFNIMSLIPYTFSQTSHLSFTFGLSLPIWIMVNIAGFKNNWKKKISHLLPQGTPIYLVPVMIIIETISLFIQPLTLGFRLGANLLAGHLLIFLCSCTIWEAINYNIYLGTISFSLILVLLILEIAVAFIQATVFLILSKNYLEENIN-
>NC_000425 241 bp
MNMINIFIINNIFDQFIPVKLSIFSLTSVGSIIALSWVWINTKTHWAISRSNTPSLLLNSLWTLLITNLNEKTNPWAPWLFSLFLLCFSFNIMSLIPYTFSQTSHLSFTFGLSLPIWIMVNIAGFKNNWKKKISHLLPQGTPIYLVPVMIIIETISLFIQPLTLGFRLGANLLAGHLLIFLCSCTIWEAINYNIYLGTISFSLILVLLILEIAVAFIQATVFLILSKNYLEENIN-
.
.
.

I have tried perl and shell script with s/\n//; only for the sequence but i dont get the correct output!

Thanks for the help :slight_smile:

Andreia

try:

awk '/^>/;!/^>/ {printf}' infile
awk '/^>/ { print ((FNR==1)?"":ORS) $0;next} {printf $0}' myFile
awk '/^>/&&NR==1{print;next}/^>/&&NR!=1{printf "\n%s\n",$0;}!/^>/{printf "%s",$0}END{printf "\n"}' filename

You implied that you just want to merge lines, but most (but not all) minus signs in your input file were removed.

Please explain what determines whether a minus sign found on an input line is supposed to be copied to an output line.

Thanks for the answers ...

yes, the minus sign (on sequence) needs to include on search like if was an similar letter A-Z ... its a fasta sequence aligned so its normal when protein/nucleotide sequence gets minus sign ...

I'm sorry, but biology was not my major. Please explain how a program reading your input file is supposed to know which minus signs should be removed when merging input lines. (None of the provided scripts produce the output you said you wanted because the output you said you want to get drops five out of six minus signs in the second line of each output pair.)