Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++

95

Ich möchte Zeilenaufträge eines Dokuments mit mehr als 500 Zeilen spiegeln. Die Zeilen sind nicht nur Zahlen, einige enthalten Text und andere Zeichen. Es ist eine Mischung.

Beispiel:

Linie 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Zeile 6

Was ich dann umdrehen, umkehren und von unten nach oben so aussehen möchte:

Zeile 6
Zeile 5
Zeile 4
Zeile 3
Zeile 2
Linie 1
Danpe
quelle
Das heißt, Sie möchten, dass die Zahlen am linken Rand abwärts zählen, oder Sie möchten, dass der tatsächliche Inhalt Ihrer Datei umgekehrt wird?
Maxpm
2
@Maxpm Tatsächlicher Inhalt der zu stornierenden Datei.
Danpe
mögliches Duplikat der umgekehrten
Zeilenreihenfolge
Verwandte (aber nicht duplizieren): Wie man eine Textdatei unter Windows
Peter Mortensen

Antworten:

102

Lösung, die keine andere Software als das im Lieferumfang enthaltene TextFX-Plugin benötigt:

  1. Bearbeiten> Alles auswählen
  2. TextFX> TextFX-Tools> Zeilennummern einfügen
  3. Wenn TextFX> TextFX-Tools> + Aufsteigend sortieren aktiviert ist, deaktivieren Sie das Kontrollkästchen
  4. TextFX> TextFX-Tools> Groß- und Kleinschreibung bei Zeilen sortieren (an der Spalte)
  5. TextFX> TextFX-Tools> Zeilennummern oder erstes Wort löschen
Gnubie
quelle
6
Wenn TextFX nicht gefunden wird, gehen Sie zu: Plugins »Plugin-Manager» Plugin-Manager anzeigen »Aktivieren Sie" TextFX-Zeichen "und klicken Sie auf Installieren. Siehe hier: textfx.no-ip.com/textfx
Kalpesh Panchal
-was hat funktioniert war "Sort lines case insensitive" in Teil 4)
Theta30
@ Theta30: Vermutlich hat sich der UI-Text seit der von mir verwendeten Version geändert.
Gnubie
2
Wenn Sie Eclipse verwenden, lesen Sie diese Antwort, um dies noch einfacher zu machen. (Ich kenne die ursprüngliche Frage, die für Notepad ++ gestellt wurde, dachte aber, dass dies für diejenigen, die darüber stolpern, eine Hinzufügung wert wäre).
Steve Chambers
2
TextFX ist kein unterstütztes Plugin in der 64-Bit-Version.
Rhyous
34

Dies kann auch in Notepad ++ ohne das TextFX-Plugin erfolgen. Es folgt der gleichen Strategie wie die akzeptierte Antwort, verwendet jedoch native Funktionen. Es wird wie folgt gemacht:

  1. Bearbeiten> Alles auswählen
  2. Bearbeiten> Spalteneditor ...> Nummer zum Einfügen auswählen> Anfangsnummer auf 1 setzen> Erhöhung um 1 setzen> Führende Nullen prüfen> OK anklicken

Bildbeschreibung hier eingeben

  1. Bearbeiten> Linienoperationen> Linien in absteigender Reihenfolge sortieren Bearbeiten: Ein kürzlich aktualisiertes Update hat zusätzliche Sortieroptionen hinzugefügt. Die Option: Linien lexikographisch absteigend sortieren scheint den Job zu erledigen.

Bildbeschreibung hier eingeben

  1. Entfernen Sie die Zeilennummern durch Auswahl eines Kontrollkästchens (Alt + Linksklick Ziehen oder Alt + Umschalt Auswählen) oder Suchen / Ersetzen

Bildbeschreibung hier eingeben

Trevor Young
quelle
1
Es funktioniert, aber es gibt zwei Dinge zu beachten: 1- Es fügt eine zusätzliche Nummer für die letzte (leere) Zeile ein, so dass Sie diese vor dem Sortieren löschen müssen. 2- Wenn Ihre Liste mit Zahlen beginnt, können Sie die eingegebenen Zahlen mit Ihren Zahlen verwechseln, da nach den eingegebenen Zahlen kein Leerzeichen eingefügt wird. In diesem Fall sollten Sie also vorsichtig sein.
Francisco Alvarado
Schritt 3 kann nicht reproduziert werden. Die neue Version hat den Wortlaut geändert , und jede Option funktioniert bei mir nicht
Ooker
1
@ TrevorYoung - Sie beschweren sich über ein Bild, das von einem anderen Benutzer hinzugefügt wurde . Ich habe gerade die Formatierung der Antwort korrigiert und die Bearbeitung genehmigt. Wenn Sie das Bild nicht hilfreich finden, entfernen Sie es, Sie sind der Autor der Antwort. Das Hinzufügen des Bildes ist eine akzeptable Bearbeitung (dh die Antwort ist besser mit dem Bild als ohne)
Ramhound
1
@ Ramhound Ich entschuldige mich. Beim Betrachten des Bearbeitungsverlaufs dachte ich, dass Sie das Bild hinzugefügt haben, aber das ist nicht der Fall. Ich habe kein Problem damit, dass das Bild da ist, aber ich habe versucht, der Person, die hinzugefügt hat, einen Vorschlag zu machen, dass es besser sein könnte, wenn der gegebene Vorschlag stattdessen gemacht würde.
Trevor Young
1
Das ist komisch, aber es funktioniert ...
KayleeFrye_onDeck
6

Nun, da wir Codebeispiele geben: Wenn Sie unter Windows 7 arbeiten oder PowerShell unter einer anderen Windows-Version installiert haben, gilt Folgendes:

$foo = New-Object System.collections.arraylist;
$foo.AddRange($(Get-Content 'C:\Path\To\File.txt));
$foo.Reverse();
$foo | Out-File C:\Path\To\File.txt

Oder laden Sie gVim herunter , öffnen Sie die Datei und geben Sie Folgendes ein , um eine Antwort ohne Kodierung zu erhalten :

:g/^/m0
EBGreen
quelle
Ich arbeite unter Windows 7. Wo füge ich diesen Code ein? Das ist wirklich interessant.
Danpe
2
Öffnen Sie das Startmenü und geben Sie einfach Powershell ein. Doppelklicken Sie auf "Windows PowerShell". Es öffnet sich eine Eingabeaufforderung. Lass es dort laufen. Es gibt auch und IDE (obwohl sie es ISE - Integrated Script Editor nennen), aber ich mache den größten Teil meiner Arbeit an der Eingabeaufforderung und ich benutze GVim für die Skriptbearbeitung.
EBGreen
Wie kann dies in Notepad ++ integriert werden? (Der Titel der Frage lautet "Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++" .)
Peter Mortensen
Deshalb ist es eher ein Kommentar als eine Antwort. Es ist eine alternative Möglichkeit, das zu erreichen, was der Benutzer meiner Meinung nach wollte, anstatt eine Antwort auf die eigentliche Frage zu geben.
EBGreen
5

Wenn Sie mit dem Kompilieren von C ++ vertraut sind, sollte dies der Trick sein. Grundsätzlich setze ich jede Zeile der Datei in einen Vektor und gebe sie mit einem umgekehrten Iterator in eine neue Datei aus.

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

int main()
{
    std::vector<std::string> fileLines;
    std::string              currLine;
    std::ifstream            inFile("input.txt");
    if (inFile.is_open())
    {
        while (inFile.good())
        {
            std::getline(inFile, currLine);
            fileLines.push_back(currLine);
        }
        inFile.close();
    }
    else
    {
        std::cout << "Error - could not open input file!\n";
        return 1;
    }

    std::ofstream outFile("output.txt");
    if (outFile.is_open())
    {
        std::vector<std::string>::reverse_iterator rIt;
        for (rIt = fileLines.rbegin(); rIt < fileLines.rend(); rIt++)
        {
            outFile << *rIt;
        }
        outFile.close();
    }
    else
    {
        std::cout << "Error - could not open output file!\n";
        return 1;
    }
    return 0;
}

Wenn in der Ausgabedatei Zeilenumbrüche zwischen den Zeilen fehlen, ändern Sie outFile << *rIt;diese outFile << *rIt << "\r\n";so , dass ein Zeilenumbruch hinzugefügt wird (lassen Sie das weg, \rwenn Sie unter Unix / Linux arbeiten).

Haftungsausschluss: Ich habe diesen Code nicht getestet (ich habe ihn ganz schnell in Notepad geschrieben), aber er sieht brauchbar aus.

Durchbruch
quelle
Danke Mann :) aber ich habe meinen Code schon benutzt, aber das kann für andere sehr hilfreich sein. Übrigens habe ich dafür vielleicht ein Notepad ++ Plugin geschrieben. Welche Sprache verwenden sie in Notepad ++ Plugins?
Danpe
@Danpe Die meisten Notepad ++ - Plugins sind in C ++ geschrieben, können jedoch technisch auf jede andere Sprache erweitert werden, die eine .DLL kompilieren kann (und über die richtigen API-Bindungen verfügt).
Durchbruch
Also ich denke du hast gerade ein Plugin erstellt :)
Danpe
Wie kann dies in Notepad ++ integriert werden? (Der Titel der Frage lautet "Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++" .)
Peter Mortensen
4

Verwenden Sie ein online verfügbares Tool, das dies mit einem Klick erledigt

http://www.miniwebtool.com/reverse-lines/

user674167
quelle
Wie kann dies in Notepad ++ integriert werden? (Der Titel der Frage lautet "Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++" .)
Peter Mortensen
2

Sie können dies online auf der Website http://textmechanic.co/Sort-Text-Lines.html tun

Franck Dernoncourt
quelle
1
Die Website ist jedoch defekt, es scheint, dass sie zu textmechanic.co/Sort-Text-Lines.html
George Chalhoub,
1
@georgechalhoub Danke, ich habe die Antwort aktualisiert.
Franck Dernoncourt
Wie kann dies in Notepad ++ integriert werden? (Der Titel der Frage lautet "Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++" .)
Peter Mortensen
1

Hier ist C # .NET-Code dafür, den ich gerade geschrieben habe :)

class Program
{
    static void Main(string[] args)
    {
        try
        {
            String line;
            Stack<String> lines = new Stack<string>();
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("test.txt"))
            {
                // Read and display lines from the file until the end of
                // the file is reached.
                while ((line = sr.ReadLine()) != null)
                    lines.Push(line);
            }

            // Create a writer and open the file
            TextWriter tw = new StreamWriter("test2.txt");
            // Write a line of text to the file
            while (lines.Count > 0)
                tw.WriteLine(lines.Pop());
            // close the stream
            tw.Close();
        }
        catch (Exception e)
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read/written:");
            Console.WriteLine(e.Message);
        }
    }
}
Danpe
quelle
Warum brauchst du das unsafeStichwort Mainhier?
Durchbruch
@ Break Ich weiß nicht, wie es dort ankam: O lol behoben.
Danpe
1
Wie können wir das in notepad ++ integrieren?
Teoman Shipahi
Wie kann dies in Notepad ++ integriert werden? (Der Titel der Frage lautet "Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++" .)
Peter Mortensen
0

Hier ist eine nicht codierende Möglichkeit:

  1. Laden Sie die kostenlose Testversion von TextPad herunter und installieren Sie sie
  2. Öffnen Sie ein Tabellenkalkulationsprogramm (z. B. Excel) und erstellen Sie die Nummern 1000 bis 1500 in Spalte "A", indem Sie in Zelle A1 "1000" und in Zelle A2 "A1 + 1" einfügen und diese dann in A500 kopieren.
  3. Öffnen Sie Ihre Textdatei in TextPad
  4. Wechseln Sie in TextPad in den "Block-Modus"
  5. Spalte A aus der Tabelle in TextPad einfügen (alle werden aufgrund des Blockiermodus am linken Rand angezeigt)
  6. Verwenden Sie die TextPad-Sortierfunktion in absteigender Reihenfolge
  7. Verwenden Sie den TextPad-Blockmodus "Löschen", um die Nummern zu entfernen
Tal
quelle
2
Wenn Sie trotzdem Excel verwenden möchten, kopieren Sie einfach den Inhalt der Datei aus einem beliebigen Editor und fügen Sie ihn in Excel ein. Füllen Sie die nächste Spalte mit einer Reihe von Zahlen. Wählen Sie beide Spalten aus und sortieren Sie absteigend nach der Zahlenspalte. Kopieren Sie die Textspalte und fügen Sie sie wieder in den Editor ein.
EBGreen
@ EBGreen, du bist richtig. Ich bin ein Idiot. Sie müssen nur vorsichtig sein, da Excel Ihre Daten ändert (durcheinander mit Zahlen, Daten und dergleichen).
Dale
Wie kann dies in Notepad ++ integriert werden? (Der Titel der Frage lautet "Umkehren oder Umkehren der Zeilenreihenfolge in Notepad ++" .)
Peter Mortensen
@PeterMortensen, Die ursprüngliche Frage lautete "Wenn es nicht in Notepad ++ verfügbar ist, dann wäre auch andere Software gut :)"
Dale
0

Wenn Sie dies auf Notepad ++ mit einem einzigen Klick automatisieren möchten:

  1. Holen Sie sich dieses Python-Skript- Plugin
  2. Fügen Sie den folgenden Code hinzu und speichern Sie ihn als .py-Datei im Python-Skriptordner (um den Speicherort dieses Ordners zu ermitteln, klicken Sie auf die Registerkarte Plugins, dann auf Python-Skript und neue Skripts).

Voller Ruhm an Reck Dickhard !

So fügen Sie es im Kontextmenü hinzu:

Wenn Sie auf die Registerkarte Plugins → Python-SkriptKonfiguration klicken , können Sie das Skript entweder einem Symbolleistensymbol oder dem Python-Skript-Menü selbst zuweisen. (Wenn Sie dem Menü ein Skript zuweisen, wird es sofort angezeigt. Sie können ihm jedoch erst beim nächsten Start von Notepad ++ eine Verknüpfung zuweisen. Wenn Sie es einem Symbol in der Symbolleiste zuweisen, wird es nur in der Symbolleiste angezeigt nächster Start von Notepad ++.)

JinSnow
quelle