Переверните или обратный порядок строк в Notepad++

Я хочу перевернуть порядок строк документа с 500 + строк. Строки-это не просто цифры, некоторые включают текст и другие символы. Это смесь.

пример:

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6

который я затем хочу перевернуть, обратить вспять и выглядеть так снизу вверх:

Line 6
Line 5
Line 4
Line 3
Line 2
Line 1
14
задан random
12.01.2023 1:27 Количество просмотров материала 3402
Распечатать страницу

9 ответов

решение, не требующее другого программного обеспечения, кроме обычно включенного плагина TextFX:

  1. Изменить > Выбрать Все
  2. TextFX > TextFX Инструменты > Вставить Номера Строк
  3. Если установлен флажок TextFX > TextFX Tools > +Сортировать по возрастанию, снимите его
  4. TextFX > TextFX инструменты > Сортировать строки с учетом регистра (в столбце)
  5. TextFX > TextFX инструменты > удалить номера строк или первое слово
91
отвечен Gnubie 2023-01-13 09:15

Это также можно сделать в Notepad++ без плагина TextFX. Он следует той же стратегии, что и принятый ответ, но с использованием собственной функциональности. Делается это следующим образом:

  1. Изменить > Выбрать Все
  2. Правка > Редактор Столбцов... > Выберите Вставить > установить начальную цифру 1 > установлено увеличить с 1 > Проверить лидирующими нулями > нажмите OK

enter image description here

  1. Изменить > Операций > Сортировка Строки в порядке убывания изменить: недавнее обновление добавлены дополнительные параметры сортировки, опция:Сортировать Строки Лексикографически По Убыванию похоже, справляется.

enter image description here

  1. удалить номера строк с помощью выбора окна (Alt + левый клик перетащить или Alt + Shift выбрать) или поиск/замена

enter image description here

21
отвечен Trevor Young 2023-01-13 11:32

Ну, так как мы приводим примеры кода, Если вы находитесь на Windows 7 или вы установили Powershell на другой версии windows, то:

$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

или для некодирующего ответа загрузите GVim открыть файл и типа:

:g/^/m0
6
отвечен EBGreen 2023-01-13 13:49

Если вам удобно компилировать C++, это должно сработать. В принципе, я помещаю каждую строку файла в вектор и выводю ее в новый файл с помощью обратного итератора.

#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;
}

если в выходном файле отсутствуют разрывы строк между строками, то измените outFile << *rIt; на outFile << *rIt << "\r\n"; таким образом, добавляется разрыв строки (опустите \r Если вы используете Unix / Linux).

отказ от ответственности: я не проверял этот код (я написал его очень быстро в блокноте), но это выглядит жизнеспособный.

5
отвечен Breakthrough 2023-01-13 16:06

используйте онлайн доступный инструмент, который делает это в один клик

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

4
отвечен user674167 2023-01-13 18:23

вы можете сделать это онлайн на сайтеhttp://textmechanic.co/Sort-Text-Lines.html

2
отвечен Franck Dernoncourt 2023-01-13 20:40

вот C# .NET код для него я только что написал:)

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);
        }
    }
}
1
отвечен Danpe 2023-01-13 22:57

вот некодирующий способ:

  1. скачать / установить бесплатную пробную версию TextPad
  2. откройте электронную таблицу программы (то есть Excel) и создать номера от 1000 до 1500 в столбце "a", поставив "1000" в ячейке A1, а затем положить A1+1 в ячейке A2, а затем скопировать, что до A500.
  3. откройте текстовый файл в TextPad
  4. переход в "режим блокировки" в TextPad
  5. вставить столбец A из электронной таблицы в TextPad (все будет в конечном итоге на левом поле из-за block mode)
  6. используйте функцию сортировки TextPad, по убыванию
  7. используйте TextPad режим блокировки удаления, чтобы избавиться от чисел
0
отвечен Dale 2023-01-14 01:14

Если вы хотите автоматизировать это на notepad++ с помощью одного клика:

  1. Get этот скрипт на python плагин
  2. добавить код ниже и сохранить его как .py-файл в папке скриптов python (чтобы узнать расположение этой папки, перейдите на вкладку Плагины, затем скрипт Python и новые скрипты).

вся слава Reck Dickhard!

edit: добавить в контекстное меню Если вы нажмете на вкладку Плагины / Python Скрипт / конфигурация, вы можете назначить скрипт либо значку панели инструментов, либо самому меню скриптов Python. (Если вы назначите скрипт меню, он появится немедленно, но вы не сможете назначить ему ярлык до следующего запуска Notepad++. Если назначить его значку панели инструментов, он появится только при следующем запуске Notepad++.)

0
отвечен JinSnow 2023-01-14 03:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх