Ausgabe des awk gsub-Befehls in eine Datei umleiten

Ausgabe des awk gsub-Befehls in eine Datei umleiten

Ich habe hier auf Stackexchange eine Antwort dazu gefunden, wie man Kommas zwischen Anführungszeichen einer durch Kommas getrennten CSV-Datei entfernt (kann dort keinen Kommentar abgeben, da ich nicht über die erforderlichen Kenntnisse verfüge).

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile

Wie kann ich die Ausgabe in eine Datei umleiten, anstatt sie auf der Konsole auszudrucken?

Ich habe verschiedene Kombinationen von „>“ ausprobiert und dabei nur leere Dateien oder Fehler erhalten. „>>“ hat jedes Mal einen Fehler ausgegeben.

Antwort1

Die Verwendung der Standardumleitung funktioniert bei Standardausgabe:

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile > test.out
$

Dadurch werden weiterhin Fehler auf dem Bildschirm gedruckt.

Wenn Sie jedoch möchten, dass Fehler und Standardausgabe in die Datei übernommen werden, führen Sie Folgendes aus:

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2>&1 > test.out
$

Oder Sie können die Fehler von der Standardausgabe trennen:

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2> errors.out 1 > test.out

verwandte Informationen