
Ich habe eine Textdatei mit über 10 Millionen Zeilen. Die Datei sieht wie folgt aus:
1902400023
1902400029
1902400031
1902400032
Ich wollte eine Überschrift, eine fortlaufende ID-Nummer und einen konstanten SHORTCODE hinzufügen. Erwartetes Ergebnis:
ID,MSISDN,SHORTCODE
1,1902400023,1
2,1902400029,1
3,1902400031,1
4,1902400032,1
Und dies wird bis zum Dateiende fortgesetzt und in eine andere Datei geschrieben.
Antwort1
Ich vermute du brauchst den awk
Code wie folgt
awk 'BEGIN { OFS = ","; header="ID,MSISDN,SHORTCODE" } NR == 1 { print header }
{ $2 = $0; $1 = NR; $3 = 1; }1' file
In der BEGIN
Klausel setzen wir den Ausgabefeldtrenner auf den ,
Operator und initialisieren die Header-Zeichenfolge. Wenn die Datei verarbeitet wird, fügen wir in der ersten Zeile den Header ein und ab den nachfolgenden Zeilen fügen wir die Zeilen ein, wie Sie es im OP gezeigt haben. NR
ist eine spezielle Variable im Kontext, awk
die die Zeilennummer verfolgt, die wir für Ihren inkrementellen Zähler verwenden.
Antwort2
Hier können Sie einen Awk-Befehl wie den folgenden verwenden, um Zeilennummern hinzuzufügen:
$ awk '{printf("%d:%s\n", NR, $0)}' millionlinetextfile > linenumberedfile