Inverter ou inverter a ordem da linha no Notepad ++

85

Eu quero virar ordens de linha de um documento com mais de 500 linhas. As linhas não são apenas números, algumas incluem texto e outros caracteres. É uma mistura.

Exemplo:

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

Qual eu, então, quero virar, inverter e se parecer com isso de baixo para cima:

Line 6
Line 5
Line 4
Line 3
Line 2
Line 1
    
por Danpe 02.09.2011 / 14:19

9 respostas

91

Solução que não requer outro software, exceto o plug-in TextFX incluído normalmente:

  1. Editar > Selecione todos
  2. TextFX > Ferramentas TextFX > Inserir números de linha
  3. Se TextFX > Ferramentas TextFX > + Classificação crescente está marcada, desmarque-a
  4. TextFX > Ferramentas TextFX > Ordenar linhas sensíveis a maiúsculas e minúsculas (na coluna)
  5. TextFX > Ferramentas TextFX > Excluir números de linha ou primeira palavra
por 21.02.2012 / 13:07
21

Isso também pode ser feito no Notepad ++ sem o plugin TextFX. Segue a mesma estratégia da resposta aceita, mas usando a funcionalidade nativa. Isso é feito da seguinte maneira:

  1. Editar > Selecione todos
  2. Editar > Editor de Colunas ... > Selecione o número para inserir > Definir o número inicial para 1 > Defina Aumentar para 1 > Verificar zeros à esquerda > Clique em OK

  • Editar > Operações de Linha > Ordenar linhas em ordem decrescente Editar: Uma atualização recente adicionou opções extras de classificação, a opção: Classificar Linhas Lexicograficamente Descendente parece fazer o trabalho.
  • Remova os números de linha por meio de qualquer seleção de caixa (Alt + clique esquerdo em arrastar ou Alt + seleção de Shift) ou em Pesquisar / substituir
  •     
    por 08.04.2015 / 21:08
    6

    Bem, já que estamos dando exemplos de código, se você estiver no Windows 7 ou tiver instalado o Powershell em outra versão do Windows, então:

    $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
    

    Ou para uma resposta que não seja de codificação, baixe GVim , abra o arquivo e digite:

    :g/^/m0
    
        
    por 02.09.2011 / 15:32
    5

    Se você estiver confortável em compilar o C ++, isso deve funcionar. Basicamente, eu coloco cada linha do arquivo em um vetor, e imprimo em um novo arquivo usando um iterador reverso.

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

    Se o arquivo de saída estiver faltando as quebras de linha entre as linhas, altere o outFile << *rIt; para outFile << *rIt << "\r\n"; para que uma quebra de linha seja adicionada (omita o \r se você estiver no Unix / Linux).

    Aviso: Eu não testei este código (escrevi bem rápido no Bloco de Notas), mas parece viável.

        
    por 02.09.2011 / 15:11
    4

    Use a ferramenta on-line disponível que faz isso em um clique

    link

        
    por 12.12.2016 / 09:25
    2

    Você pode fazer isso on-line no site link

        
    por 28.02.2014 / 16:51
    1

    aqui é um código C # .NET para ele que acabei de escrever:)

    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);
            }
        }
    }
    
        
    por 02.09.2011 / 15:15
    0

    Aqui está uma maneira não codificadora:

    1. Download / instalação do teste gratuito do TextPad
    2. Abra um programa de planilha (ou seja, Excel) e crie os números 1000 a 1500 na coluna "A" colocando um "1000" na célula A1, colocando A1 + 1 na célula A2 e copie-o para A500.
    3. Abra seu arquivo de texto no TextPad
    4. Altere para "modo de bloqueio" no TextPad
    5. Cole a coluna A da planilha no TextPad (tudo acabará na margem esquerda devido ao modo de bloqueio)
    6. Use o recurso de classificação do TextPad, descendo
    7. Use o modo de bloqueio do TextPad para excluir os números
    por 02.09.2011 / 16:32
    0

    Se você deseja automatizar isso no notepad ++ com um único clique:

    1. Obtenha o este script python plugin
    2. adicione o código abaixo e salve-o como arquivo .py na pasta de script python (para saber a localização dessa pasta, clique na guia plugins, em seguida, Script Python e novos scripts).

    Toda a glória de Reck Dickhard !

    edit: para adicioná-lo no menu de contexto Se você clicar na guia plugins / Python Script / Configuration, poderá atribuir o script a um ícone da barra de ferramentas ou ao próprio menu Script Python. (Se você atribuir um script ao menu, ele aparecerá imediatamente, mas você não poderá atribuir um atalho a ele até a próxima vez que o Notepad ++ for iniciado. Se você atribuí-lo a um ícone da barra de ferramentas, ele só aparecerá no próximo início do Notepad ++.)

        
    por 10.02.2016 / 12:59

    Tags