
awk -F ';' '{print $1}' FileName
Ich verwende diesen Befehl, um die erste Spalte einer Datei zu drucken, die durch Semikolon getrennt ist.
Jetzt muss ich die Ausgabe des obigen Befehls durchlaufen. Wenn meine Ausgabe ist
0
1
2
Ich muss jeden Datensatz durchlaufen und die Iteration angeben, was mein Datensatztrennzeichen in meiner Ausgabe ist
Gibt es eine Möglichkeit, die Ausgabe etwa wie unten auszudrucken?
0;1;2
Damit kann ich iterieren und sagen, dass das Trennzeichen „;“ ist.
Antwort1
um ein abschließendes Semikolon zu vermeiden
awk -F\; 'NR>1 { printf ";" ;} {printf "%s",$1;} END {printf "\n"} '
printf
Zeilenvorschub nicht druckenNR>1
nur nach der ersten Zeile druckenEND
nach der letzten Zeile drucken.
Antwort2
awk
gibt den Wert von ORS
(Ausgabedatensatztrennzeichen) am Ende jeder print
Anweisung aus. Standardmäßig ist es eine neue Zeile, aber Sie können es ändern:
$ cat foo.txt
0;3;6
1;4;7
2;5;8
$ awk -vORS=';' -F';' '{print $1} END {printf "\n"}' foo.txt
0;1;2;
Ich habe es hinzugefügt, END {printf "\n"}
um am Ende der Ausgabe eine neue Zeile zu erhalten.
Antwort3
Sie können auch Coreutils verwenden:
<foo.txt cut -d';' -f1 | paste -sd';'