Ich habe eine große CSV- Datei, die ich zum Entfernen der ersten Datenspalte benötige. Ich kann es nicht in Excel öffnen, da Excel einige der Werte in den Spalten in wissenschaftliche Zahlen konvertiert.
Ich benutze Notepad ++ und versuche, die erste Spalte aus der Datei EXE zu kopieren.
1,Value1,value2,value3,value4,value5
3445,Value1,value2,value3,value4,value5
12345,Value1,value2,value3,value4,value5
1234,Value1,value2,value3,value4,value5
11,Value1,value2,value3,value4,value5
aussehen
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
quelle
^[^,]+,
und durch leer ersetzen?Drücken Sie Ctrl+ Hund führen Sie das folgende Ersetzen durch:
Drücken Sie jetzt Alt+ A, um alle Vorkommen zu ersetzen.
Wie es funktioniert
Der reguläre Ausdruck
.*?,(.*)
entspricht einer ganzen Zeile:.*?,
Stimmt mit allem vor dem ersten Komma überein, einschließlich dem Komma selbst..*
bedeutet eine beliebige Anzahl von Vorkommen eines Zeichens, und das Fragezeichen macht den Quantifizierer faul , dh es entspricht so wenig Zeichen wie möglich.(.*)
Stimmt mit allem nach dem ersten Komma überein.Das Einschließen
.*
in Klammern wandelt es in ein Untermuster um, so dass auf den Mast im Ersetzungsfeld zugegriffen werden kann.\1
repräsentiert das erste Submatch (Match for(.*)
).Infolgedessen ersetzt Notepad ++ die Zeile durch alles, was auf das erste Komma folgt.
quelle
^[^,]+,
global mit einem leeren String wird nicht funktionieren in Notepad ++ ersetzt. (+1)In Windows können Sie dies wie folgt tun.
Ich nahm an, dass Sie nur 6 Spalten haben. Wenn Sie mehr Spalten haben, experimentieren Sie mit * im Token-Feld. Idee wird von Windows für Befehl genommen
quelle
for /F "tokens=1* delims=," %i in (Input.csv) do @echo %j >> output.csv
Angenommen , Sie haben ein Linux - System oder ein Unix - Stil Umgebung (I wie Gow , oder Sie können die Dienstprogramme aus snarf unixutils ) Ich glaube , läuft die Datei durch
cut -d , -f2-6
den Trick tun sollten - es sollte, wenn ich mich richtig erinnere den Trick --d
setzt die Trennzeichen undf2-6
druckt das zweite bis sechste Zeichen aus.cat input.csv | cut -d , -f2-6 > output.csv
würde den Trick machen, Eingabedatei zu nehmen und eine Ausgabedatei rauszuschmeißen. Es ist kein Notizblock, aber es ist schnell und wirklich einfach.quelle
Sie sollten in der Lage sein, die CSV-Datei in Excel zu laden und Zahlen als Text zu behandeln (sodass sie nicht in wissenschaftliche Zahlen konvertiert werden kann).
quelle
Notepad ++ verfügt über eine integrierte Spaltenbearbeitung und den Befehl "Anordnen nach (,)" (TextFX-Plug-in). Dies bietet eine grafische Point-and-Click-Lösung, die wahrscheinlich zum ersten Mal richtig ist. Auf diese Weise müssen keine regulären Ausdrücke oder Shell-Programme verwendet werden. Beide erfordern in der Regel ein Debugging, bis sie genau das tun, was Sie wollen, und nichts mehr.
Ausgangspunkt : CSV-Datei mit fehlausgerichteten Spalten, daher nicht einfach nach Spalten zu bearbeiten ...
Verfahren:
Wählen Sie die gewünschten Zeilen aus - möglicherweise die gesamte Datei.
Verwenden Sie den Menübefehl TextFX> TextFX-Bearbeitung> Mehrere Zeilen nach Komma ausrichten (,). Dies richtet alle Zeilen nach Spalten aus und erleichtert die Spaltenbearbeitung.
Geben Sie Spaltenmodus in der Spalte nach dem ersten Komma (,) Für eine kleine Anzahl von Zeilen, verwenden Sie die Tastaturbefehle: Alt + Shift + Downarrow.
Wenn Sie mit vielen Zeilen arbeiten müssen (große Datei), klicken Sie mit gedrückter Alt-Taste auf die gewünschte Spalte der ersten Zeile, gehen Sie dann zur letzten Zeile der Datei und drücken Sie bei gedrückter Alt-Umschalttaste die gleiche Spaltenposition. Dies aktiviert den Spaltenmodus für die GESAMTE Datei - Sie sollten eine vertikale Linie hinter allen Kommas sehen.
Löschen in der Spalte Modus entfernt eine ganze Spalte von Zeichen. Sie können also alles vor dem ersten Komma in allen Zeilen auf einmal löschen, um Folgendes zu erhalten:
Erledigt!
Bemerkung zu dieser Lösung im Vergleich zu den verschiedenen anderen bisher vorgeschlagenen:
Die Bearbeitung im Spaltenmodus ist sehr leistungsfähig und kann in Kombination mit den TextFX-Plug-in-Optionen schnell und einfach auf eine Vielzahl von Situationen angewendet werden.
Wenn Sie beispielsweise die 2. Spalte oder die N-te Spalte schnell löschen möchten, funktioniert dieser Ansatz nahezu unverändert.
Reguläre Ausdrücke und Shell-Skripte erreichen das Ziel zwar, aber bei komplizierten Problemen müssen Sie mehr Zeit aufwenden, um die Syntax zu "entstören".
Die vielseitige integrierte Funktionalität von Notepad ++ ist eine der Hauptstärken: Sie erhalten einiges an Leistung, ohne auf "Programmieren" zurückgreifen zu müssen.
quelle
Wenn Sie mit dem Python-Konsolen-Plugin für Notepad ++ vertraut sind , kann ich Ihnen eine andere Methode empfehlen. Sie müssen Ihren Text in das Notepad ++ - Dokument einfügen und das nächste Skript in der Konsole ausführen:
Dieses Skript hat den Ergebnistext zu Ihrem aktuellen Notepad ++ - Dokument hinzugefügt.
quelle
Ausführen
vim
(im Befehlsmodus, wenn nicht Escape drücken).Geben Sie den folgenden Befehl ein, um die Aktion zum Entfernen der ersten Spalte dem
q
Schlüssel zuzuordnen :Was bedeutet:
0
- an den Zeilenanfang gehendf,
- d elete alles bis , Zeichen (einschließlich Komma),j
- eine Zeile nach unten gehen0
- an den Zeilenanfang gehenWenden Sie dann diese Aktion auf alle Zeilen an:
Das heißt, führen Sie die der Taste zugewiesene Aktion
q
von der ersten (0) bis zur letzten ($) Zeile aus.quelle
:%s/^[^,]\+,//g
?