Uso do Comando Uniq?

1

Eu tenho conteúdo de arquivo de algumas coisas e quero usar o comando uniq , mas não funciona. Qual é a coisa que eu perdi?

$ cat ornek_2
elma
elma
armut
armut 
erik
kayısı
üzüm 

com o comando uniq ;

$ cat ornek_2 | uniq
elma
armut
armut 
erik
kayısı
üzüm 

com o comando sort | uniq

$ cat ornek_2 | sort | uniq
armut
armut 
elma
erik
kayısı
üzüm 
    
por solfish 15.08.2017 / 21:26

2 respostas

3

As duas linhas "armut" não são exatamente as mesmas. Um tem um espaço no final.

Eu percebi isso quando estava editando a pergunta. Acontece que eu cliquei no final da linha e notei a diferença entre a palavra e o cursor. Mas, se eu não tivesse percebido então, eu teria alimentado as duas linhas em uniname assim, para analisar cada caractere:

$ grep "armut" ornek_2 | uniname
character  byte       UTF-32   encoded as     glyph   name
        0          0  000061   61             a      LATIN SMALL LETTER A
        1          1  000072   72             r      LATIN SMALL LETTER R
        2          2  00006D   6D             m      LATIN SMALL LETTER M
        3          3  000075   75             u      LATIN SMALL LETTER U
        4          4  000074   74             t      LATIN SMALL LETTER T
        5          5  00000A   0A                     LINE FEED (LF)
        6          6  000061   61             a      LATIN SMALL LETTER A
        7          7  000072   72             r      LATIN SMALL LETTER R
        8          8  00006D   6D             m      LATIN SMALL LETTER M
        9          9  000075   75             u      LATIN SMALL LETTER U
       10         10  000074   74             t      LATIN SMALL LETTER T
       11         11  000020   20                     SPACE
       12         12  00000A   0A                     LINE FEED (LF)

Veja o caractere 11 na saída acima

Se você quiser verificar se alguma outra linha termina com espaço em branco (espaços, tabulações, etc), você pode usar o grep:

$ grep -E '\s+$' ornek_2
armut 
üzüm 

BTW, você não precisa do canal cat em uniq ou sort . Você pode executar apenas uniq ornek_2 ou sort ornek_2 | uniq , embora não seja grande coisa nesse caso. Mais detalhes aqui: Devo me importar com gatos desnecessários? - Unix & amp; Linux

    
por wjandrea 15.08.2017 / 21:31
1

Eu tentei o seu arquivo de amostra. Eu também tenho o seu erro. Mas quando eu escrevi armut novamente sozinho resolvi o problema !!!

Se você copiar este texto de qualquer lugar, digite-os novamente em seu arquivo.

sort a | uniq -ic
  2 armut
  2 elma
  1 erik
  1 kayısı
  1 üzüm 
    
por Ali Ghasempour 15.08.2017 / 21:30