it-swarm.com.de

Wie füge ich mit dem Shell-Befehl Zeilennummern in jede Zeile ein?

Meine Datei,

PSS-A  (Primary A)
PSS-B  (Primary B)
PSS-C  (Primary C)
PSS-D  (Primary D)
PSS-E  (Primary E)
PSS-F  (Primary F)
PSS-G  (Primary G)
PSS-H  (Primary H)
PSS-I  (Primary I)
SPARE  (SPARE)

Ausgabedatei,

 1> PSS-A  (Primary A)
 2> PSS-B  (Primary B)
 3> PSS-C  (Primary C)
 4> PSS-D  (Primary D)
 5> PSS-E  (Primary E)
 6> PSS-F  (Primary F)
 7> PSS-G  (Primary G)
 8> PSS-H  (Primary H)
 9> PSS-I  (Primary I)
10> SPARE  (SPARE)
19
pmaipmui

Wenn Sie dasselbe Format möchten, das Sie angegeben haben

awk '{print NR  "> " $s}' inputfile > outputfile

andernfalls können die meisten Implementierungen des Befehls cat Zeilennummern für Sie drucken, obwohl dies nicht Standard ist (Nummern, die auf Breite 6 aufgefüllt sind und in mindestens den Implementierungen GNU, Busybox, Solaris und FreeBSD von TAB gefolgt werden).

cat -n inputfile > outputfile

Oder Sie können grep -n (Zahlen gefolgt von :) mit einem regulären Ausdruck wie ^ das passt zu jeder Zeile:

grep -n '^' inputfile > outputfile
26
amisax

Das richtige Werkzeug für diesen Job ist nl:

nl -w2 -s'> ' file

Möglicherweise möchten Sie die Option width entsprechend der Gesamtzahl der Zeilen in der Datei anpassen (wenn Sie möchten, dass die Zahlen gut ausgerichtet sind).

Ausgabe:

 1> PSS-A  (Primary A)
 2> PSS-B  (Primary B)
 3> PSS-C  (Primary C)
 4> PSS-D  (Primary D)
 5> PSS-E  (Primary E)
 6> PSS-F  (Primary F)
 7> PSS-G  (Primary G)
 8> PSS-H  (Primary H)
 9> PSS-I  (Primary I)
10> SPARE  (SPARE)
31
jimmij

ich habe nach der folgenden Methode getan

befehl: cat -n filename |sed -r "s/^\s+//g"| sed "s/^[0-9]*/&\> /g"

ausgabe

cat -n u.txt |sed -r "s/^\s+//g"| sed "s/^[0-9]*/&\> /g"
1>  PSS-A  (Primary A)
2>  PSS-B  (Primary B)
3>  PSS-C  (Primary C)
4>  PSS-D  (Primary D)
5>  PSS-E  (Primary E)
6>  PSS-F  (Primary F)
7>  PSS-G  (Primary G)
8>  PSS-H  (Primary H)
9>  PSS-I  (Primary I)
10>     SPARE  (SPARE)
0