Wie kann ich unter Windows-7 einen Text nach Hashtag sortieren?
Ich habe einen langen Text (TXT-Format), der ungefähr so aussieht:
- Blah blah #Test
- 123123 #Wirklich
- Blah bluh #Wirklich
- klfdmngl #Test
Ich möchte den Text bequem, schnell und automatisch so sortieren können, dass er so aussieht:
- Blah blah #Test
- klfdmngl #Test
- 123123 #Wirklich
- Blah bluh #Wirklich
Ich muss das täglich machen, damit ich es in so wenigen Schritten wie möglich machen kann.
windows
text-editors
sorting
purge
Joey Hammer
quelle
quelle
#
durch,#
Schritt 2: Als CSV in Excel oder eine ähnliche Anwendung importieren.#[sometext]{eol}
?Antworten:
Hier ist eine Windows-Batchdatei (.bat) oder eine Befehlsdatei (.cmd), die dies erledigt. Ich war mir nicht sicher, was Sie mit der Ausgabe machen wollten, daher zeigt diese nur eine der beiden temporären Dateien an, die sie erstellt und dann beide löscht.
quelle
#
, ausreichen würde, um anzunehmen, dass sie bei der nächsten (oder mehreren) fortgesetzt wurde./#\w+$/
Wenn es nicht vorhanden ist, wird davon ausgegangen , dass die Daten in der nächsten Zeile fortgesetzt werden.Hier ist eine letzte PowerShell-Lösung, die sich mit neuen Linien befasst. Als Trennzeichen wird ein Hashtag gefolgt von Wortzeichen gefolgt von {EOL} angenommen. Bei einer Datenzeile ohne Hash-Tag wird davon ausgegangen, dass die Daten in der nächsten Zeile fortgesetzt werden. Die anderen Informationen unter diesem Abschnitt meiner Antwort befassen sich nicht mit dem vom Autor erwähnten Sonderfall, bei dem Daten eine Newline-Grenze überschreiten. In diesem Beispiel wird davon ausgegangen, dass die Datei test.txt heißt und sich im aktuellen Verzeichnis befindet.
Verwenden Sie gVim unter Windows oder MacVim unter OS X.
HINWEIS: Vim ist ein Editor mit 2 Modi. Einfüge- / Bearbeitungsmodus und Befehlsmodus. Um Text tatsächlich wie einen normalen Editor zu bearbeiten, müssen Sie sich im Bearbeitungsmodus befinden, der das Drücken einer Taste wie
a
oder erforderti
. Der Editor wird im Befehlsmodus gestartet. Im Befehlsmodus können Sie einfach einen Doppelpunkt eingeben, um diese Befehle einzugeben.Der erste Befehl tauscht das Hashtag am Zeilenende gegen den Zeilenanfang aus. Der zweite Befehl sortiert die Daten und der dritte Befehl macht den Tausch rückgängig und verschiebt das Hashtag zurück an das Ende der Zeile.
Ich habe dies an Ihrer Probe getestet und es funktioniert.
@Oliver_Salzburg gab mit Excel in Kommentaren eine viel einfachere Antwort. Ich habe nicht über den Tellerrand hinaus gedacht und mit einem Texteditor geantwortet.
Hier ist eine Lösung, die nur Powershell verwendet und von Haus aus unter Win7 ausgeführt werden kann. Ich hatte immer noch keine Gelegenheit, über durchlaufende Zeilenumbrüche nachzulesen, daher berücksichtigt diese Lösung diese nicht.
In diesem Beispiel wird davon ausgegangen, dass es sich bei der Datei, mit der Sie arbeiten, um handelt
test.txt
.Ein Liner, Hebel Unterschalen.
quelle
:sorthash
beispielsweise einen Befehl eingeben und die Befehle in der richtigen Reihenfolge ausführen.Unter Windows können Sie dieses einfache PowerShell-Skript verwenden:
Ich bin kaum ein PowerShell-Experte. Tut mir leid, wenn es eine optimalere Lösung gibt :)
Beispiel
Hier ist der Inhalt meiner Eingabedatei
test.txt
:Dies ist die Ausgabe, wenn das obige Skript ausgeführt wird:
Analyse
quelle
get-content
? Ihrget-content test.txt | sort-object {$_.SubString($_.IndexOf('#'))}