Ändern einer bestimmten „Spalte“ in einer TXT-Datei

Ändern einer bestimmten „Spalte“ in einer TXT-Datei

Ich habe eine Datei mit Tausenden von Einträgen wie diese:

6/05/2016,32,34,40,45,48,,01,10
10/05/2016,02,26,27,40,49,,05,10
13/05/2016,07,15,28,31,42,,10,11
17/05/2016,15,27,32,36,39,,03,10

Ich möchte das Datum im ersten Feld durch eine fortlaufende Nummer ersetzen, beginnend mit 800. Diese Liste würde also umgewandelt werden in

800,32,34,40,45,48,,01,10
801,02,26,27,40,49,,05,10
802,07,15,28,31,42,,10,11
803,15,27,32,36,39,,03,10
...

Wie mache ich das?

Antwort1

Mit awkihm ist es so einfach wie

awk -F, -vOFS=, '{$1=n++; print}' n=800 file

Sie setzen die Eingabe- und Ausgabetrennzeichen auf ,via -F,und -vOFS=,und initialisieren eine Variable nauf 800using n=800. Die Anweisung „action“ {$1=n++; print}wird für jeden Datensatz ausgeführt, wobei das erste Feld auf ein Post-Inkrement gesetzt nund der wiederhergestellte Datensatz gedruckt wird.

verwandte Informationen