Da Sie speziell nach einer sed-Lösung gefragt haben (ich würde nicht vorschlagen, dies tatsächlich so zu tun - aber Sie könnten):
$ sed = file | sed '1~2 s/^/>seq/'
>seq1
CWGAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAG
>seq2
ACACTCTTTCCCTACACGACGCTCTTCCGATCTAGGC
>seq3
ACACTCTTTCCCTACACGACGCTCTTCCGATCTGATT
>seq4
ACACTCTTTCCCTACACGACGCTCTTCCGATCTACCGT
Der erste Aufruf sed = file
fügt blanke Zeilennummern ein, der zweite verziert sie, indem die >seq
Zeichenfolge vorangestellt wird .
OTOH Wenn Sie im Voraus wissen, dass es 770 Leitungen gibt, können Sie dies tun
printf ">seq%d\n" {1..770} | sed 'R file'
obwohl dies auf der GNU sed- R
Erweiterung beruht :
R Dateiname
Warteschlange Eine Zeile mit Dateinamen, die am Ende des aktuellen Zyklus oder beim Lesen der nächsten Eingabezeile gelesen und in den Ausgabestream eingefügt werden soll. Beachten Sie, dass, wenn der Dateiname nicht gelesen werden kann oder wenn sein Ende erreicht ist, keine Zeile ohne Fehleranzeige angehängt wird.
Natürlich , wenn Sie nicht die Anzahl der Zeilen im Voraus wissen, Sie könnten tun
printf ">seq%d\n" $(seq 1 "$(wc -l < file)") | sed 'R file'
Dies würde jedoch den Vorteil verlieren, dass die Datei nur einmal gelesen werden muss.
In der Praxis würde ich wahrscheinlich die awk-Lösung von @ John1024 oder deren Perl-Äquivalent verwenden
perl -lpe 'print ">seq" . $.' file