![Ersetzen Sie negative Werte in einer Datei durch Nullen](https://rvso.com/image/1416699/Ersetzen%20Sie%20negative%20Werte%20in%20einer%20Datei%20durch%20Nullen.png)
Ich möchte alle negativen Werte in einer Datei durch Nullen ersetzen. Wie kann ich das in awk machen?
Ich habe es mit versucht gsub
, aber gsub(-*, 0)
es funktioniert nicht ... Irgendwelche Ideen?
Mein "Code" ist
awk '{gsub($(!/-/),"0",$2); print $1 "\t" $2} file.dat >file.dat
Antwort1
Es sieht so aus, als würden Sie nur die zweite Spalte aktualisieren. Wenn das der Fall ist, sollte dies Folgendes ergeben:
awk '$2<0 {$2=0} 1' file > tmp_file && mv tmp_file file
Prüfen
$ cat a
hello 2
hello 3
hello -1
hello -4
hello 0
$ awk '$2<0 {$2=0} 1' a
hello 2
hello 3
hello 0
hello 0
hello 0