diese Quelle vor:awk - analysieren Text gleiche Zeichen in Feldern als Trennzeichen mit
field1;field2;"data;data field3";field4;"data;data field5";field6
field1;"data;data field2";field3;field4;field5;"data;data field6"
Wie Sie sehen können, das Feldtrennzeichen verwendet wird, innerhalb bestimmter Felder, eingeschlossen zwischen "
. Ich kann nicht direkt mit awk
analysieren, weil es keine Möglichkeit gibt, unerwünschte Spaltung zu vermeiden, zumindest habe ich keinen Weg gefunden. Außerdem haben diese speziellen Felder eine variable Position innerhalb einer Zeile und sie können einmal, zweimal, viermal usw. vorkommen.
Ich dachte an eine Lösung mit einem vorbereitenden Schritt, wobei ich die ;
in diesen Feldern durch a Code irgendeiner Art. Das Problem ist, dass sed
/awk
gierigen REGEX
übereinstimmen. Im obigen Beispiel kann ich also nur ;
innerhalb des letzten in Anführungszeichen eingeschlossenen Feldes in jeder Zeile ersetzen.
Wie kann ich jede Instanz von Anführungszeichen abgleichen und die spezifischen ;
in ihnen ersetzen? Ich will nicht perl
oder python
usw.
, was es ist, dass Sie einmal yo tun wollen Hast du die Felder getrennt? und warum willst du 'perl' nicht benutzen? es ist nur ein anderes Werkzeug wie 'awk', das in der Befehlszeile verwendet werden kann ... mit' GNU awk' können Sie https://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content verwenden .html # Splitting-By-Content – Sundeep