![So entfernen Sie mit dem Awk-Befehl mehrere Spalten in der CSV-Datei, wenn die Zeile dieselben Werte enthält](https://rvso.com/image/168792/So%20entfernen%20Sie%20mit%20dem%20Awk-Befehl%20mehrere%20Spalten%20in%20der%20CSV-Datei%2C%20wenn%20die%20Zeile%20dieselben%20Werte%20enth%C3%A4lt.png)
Ich habe eine Ausgabe wie diese
4567,4567
5436,5436
1234,5678
Erwartete Ausgabe:
1234,5678
Habe den folgenden Befehl ausprobiert, aber er löscht die Spalte, nicht die Zeile
awk -F, 'NF==2{NF-=1}NF<1{sub(/",.*/,"\"")}1' OFS=,
Vielen Dank für eure Hilfe und Vorschläge
Antwort1
Was ist damit
awk -F, '$1 != $2'
Dies funktioniert durch Vergleichen der ersten beiden durch Kommas getrennten Felder. Jede awk
Anweisung hat eine implizite { print }
„wenn“-Anweisung, und diese wird hier verwendet. Das Ergebnis ist, dass eine Eingabezeile nur dann gedruckt wird, wenn die beiden Felder nicht übereinstimmen.
Antwort2
Dies ist mein Vorschlag mit sed
:
sed '/^\(.*\),\1$/d' file
Ausgabe:
1234,5678