Das Trennzeichen wird mit Feldern geändert

7

Ich habe eine Datei mit Werten, die in Spalten organisiert und durch Kommas getrennt sind , wie in der folgenden Datei:

324,01,1,113333600000,1,,
016,01,1,134954200000,1,,
770,01,1,109069200000,1,,
853,01,1,111518800000,1,,

Wenn ich den folgenden awkBefehl verwende, wird das Trennzeichen von Kommas in Leerzeichen geändert

Code:

awk -F, '{$4=$4/1024}{print $0}'

Die Ausgabe wird:

324 01 1 110677343.75 1  
016 01 1 131791210.93 1  
770 01 1 106512890.62 1  
853 01 1 108905078.12 1 

Wie kann ich den Wert des Feldes ändern, ohne das Trennzeichen zu ändern?

Eng7
quelle

Antworten:

17

Set OFSauch:

awk -F, -v OFS=, '{$4=$4/1024}1'

Das OFSbestimmt, wie Ausgabefelder begrenzt werden. Wenn Sie es nicht festlegen, ist die Standardeinstellung ein Leerzeichen.

muru
quelle
6

Die Antwort von muru ist korrekt, aber ich bevorzuge die Verwendung des BEGIN-Blocks für diese Aufgabe:

awk 'BEGIN{FS=OFS=","}{$4=$4/1024}1'
Steven Penny
quelle