Como remover linhas duplicadas no vi

Escrito por kristen waters | Traduzido por milene hermenegildo
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como remover linhas duplicadas no vi
Remova linhas duplicadas no vi (computer image by blaine stiger from Fotolia.com)

O vi é um poderoso editor de texto com linha de comando nativo do Unix. Embora não seja possível remover linhas duplicadas de texto com comandos nativos do vi, é possível fazê-lo usando comandos nativos do Unix e scripts shell dentro do editor.

Nível de dificuldade:
Moderadamente fácil

Outras pessoas estão lendo

O que você precisa?

  • Unix ou Linux

Lista completaMinimizar

Instruções

    Instruções

  1. 1

    Faça um backup do arquivo. :w doc.bkup

  2. 2

    Se for aceitável classificar as entradas no arquivo de texto, use primeiro o comando de classificação:

    :1,$!sort

    Este comando diz que "use o comando de classificação do Unix da primeira linha até o fim do arquivo".

  3. 3

    Use o comando uniq do Unix para remover as linhas duplicadas.,

    :1,$!uniq

    Este comando diz que "use o comando uniq do Unix para remover linhas duplicadas da primeira linha até o fim do arquivo". O comando uniq funciona apenas em linhas de duplicadas que estão adjacentes uma a outra e não têm quaisquer linhas em branco entre elas.

  4. 4

    Se você não conseguir classificar o arquivo, você terá que usar um script awk. Awk é um utilitário de manipulação de texto do Unix. Quando usado com o vi, ele irá executar tarefas avançadas que o vi sozinho não consegue fazer.

    Copie o script a seguir em um documento de texto e salve-o com o nome dup.sh no mesmo diretório do seu documento de texto.

    !/bin/bash

    awk '!($0 in a) {a[$0];print}'

    Este script diz que "encontra cada linha única e a imprime".

  5. 5

    A partir da linha de comando do Unix, torne o script dup.sh executável com o comando:

    chmod +x dup.sh

  6. 6

    Remova as linhas duplicadas não consecutivas no vi com o seguinte comando:

    :1,$!./dup.sh

    Este comando diz que "executa o script dup.sh da primeira linha até o fim do arquivo."

  7. 7

    Salve seu arquivo com o comando

    :w.

Dicas & Advertências

  • Você pode combinar os comandos sort uniq usando sort -u.
  • Você pode excluir as linhas não consecutivos através da linha de comando com o comando "awk '!($0 in a) {a[$0];print}' sort.txt > sort2.txt". O arquivo sort2.txt manterá as entradas exclusivas.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível