- Gerar link
- X
- Outros aplicativos
Postagem em destaque
- Gerar link
- X
- Outros aplicativos
Sobre
Relatar ou omitir linhas repetidas.
Descrição
Filtra as linhas de correspondência adjacentes de ENTRADA (ou entrada padrão), escrevendo para SAIDA (ou saída padrão). Sem opções, as linhas de correspondência são mescladas com a primeira ocorrência.
Para mais informações consulte o manual: uniq(1)
Uso
Para este exemplo considere o arquivo cores.txt com o seguinte conteúdo:
Note que na lista algumas cores aparecem repetidas, enquanto outras só existe uma única ocorrência.
Exemplos
1. Removendo os itens duplicados.
Observe que foi retornado apenas um item de cada, eliminando os itens repetidos.
Por padrão, 'uniq' imprime suas linhas de entrada, porém descarta todas, exceto a primeira de linhas repetidas adjacentes, de modo que nenhuma linha de saída são repetidas. Opcionalmente, ele pode descartar linhas que não são repetidas, ou todas as linhas repetidas. A entrada não precisa ser classificada, mas as linhas de entrada repetidas são detectadas somente se forem adjacentes.
2. Imprimindo somente os itens duplicados (separados por grupos).
Note que somente os itens duplicados foram retornados, porém com apenas o primeiro item de cada linha com duas ou mais ocorrências.
3. Imprimindo somente os itens duplicados.
É retornado somente os itens duplicados em sua ordem e repetições.
4. Separando linhas duplicadas.
Note que é inserido uma nova linha, separando os grupos de linhas duplicadas.
Não descartar as entradas repetidas é útil principalmente em conjunto com outras opções, por exemplo, ignorar letras maiúsculas ou minúsculas, ou comparar apenas os campos selecionados. O MÉTODO é opcional; porém especifica como delimitar grupos de linhas repetidas, e deve ser um dos seguintes:
'none'
Não delimita grupos de linhas repetidas. Isso é equivalente a usar '-D' ou '--all-repeated'.
'prepend'
Insere uma nova linha na saída de cada grupo de linhas repetidas. Com '--zero-terminated' ou '-z', usa um byte zero (ASCII NUL) em vez de uma nova linha como delimitador.
'separate'
Separar grupos de linhas repetidas com uma única nova linha. Este é o mesmo que usar 'prepend', exceto que nenhum delimitador é inserido antes do primeiro grupo e, portanto, pode ser melhor adequado para a saída direta para os usuários.
5. Suprimindo as linhas duplicadas.
Ao utilizar o parâmetro '-u', informados ao comando para retornar somente os itens únicos (sem repetições adjacentes).
6. Listando o número de repetições
Imprimiu a quantidade de repetições subsequentes, seguido do item a qual se refere.
Os itens repetidos porém não adjacentes são interpretados como um grupo distinto.
Para nosso último exemplo realizei alterações no arquivo cores.txt, deixando apenas as cores verde e azul, e adicionando duas tonalidades (claro e escuro).
Veja o seu conteúdo a seguir:
Observe que os itens adjacentes são diferentes, onde a única semelhança é a sua tonalidade.
7. Listando a quantidade de repetições por tonalidade.
Ao utilizar o parâmetro '-f 1', mudamos o comportamento do comando fazendo com que ele ignore o primeiro campo em sua avaliação, ou seja, a contagem foi realizada com base no segundo campo (tonalidade). Se houver dois ou mais campos, eles seriam avaliados.
Ignora N campos em cada linha antes de verificar a exclusividade. Use um Null para comparação se uma linha tem menos de N campos. Os campos são sequências de caracteres não tabulares que são separadas entre si por pelo menos um espaço ou tab.
Para compatibilidade 'uniq' suporta uma sintaxe de opção obsoleta '-N'. Novos scripts devem usar '-f N' em vez disso.
Relatar ou omitir linhas repetidas.
Descrição
Filtra as linhas de correspondência adjacentes de ENTRADA (ou entrada padrão), escrevendo para SAIDA (ou saída padrão). Sem opções, as linhas de correspondência são mescladas com a primeira ocorrência.
Para mais informações consulte o manual: uniq(1)
Uso
uniq [OPCAO]... [ENTRADA [SAIDA]]
Para este exemplo considere o arquivo cores.txt com o seguinte conteúdo:
SHAMAN@shellscriptx:~$ cat cores.txt
azul
azul
azul
amarelo
vermelho
vermelho
cinza
cinza
branco
preto
preto
verde
Note que na lista algumas cores aparecem repetidas, enquanto outras só existe uma única ocorrência.
Exemplos
1. Removendo os itens duplicados.
SHAMAN@shellscriptx:~$ uniq cores.txt
azul
amarelo
vermelho
cinza
branco
preto
verde
Por padrão, 'uniq' imprime suas linhas de entrada, porém descarta todas, exceto a primeira de linhas repetidas adjacentes, de modo que nenhuma linha de saída são repetidas. Opcionalmente, ele pode descartar linhas que não são repetidas, ou todas as linhas repetidas. A entrada não precisa ser classificada, mas as linhas de entrada repetidas são detectadas somente se forem adjacentes.
2. Imprimindo somente os itens duplicados (separados por grupos).
SHAMAN@shellscriptx:~$ uniq -d cores.txt
azul
vermelho
cinza
preto
3. Imprimindo somente os itens duplicados.
SHAMAN@shellscriptx:~$ uniq -D cores.txt
azul
azul
azul
vermelho
vermelho
cinza
cinza
preto
preto
4. Separando linhas duplicadas.
SHAMAN@shellscriptx:~$ uniq --all-repeated=separate cores.txt
azul
azul
azul
vermelho
vermelho
cinza
cinza
preto
preto
Não descartar as entradas repetidas é útil principalmente em conjunto com outras opções, por exemplo, ignorar letras maiúsculas ou minúsculas, ou comparar apenas os campos selecionados. O MÉTODO é opcional; porém especifica como delimitar grupos de linhas repetidas, e deve ser um dos seguintes:
'none'
Não delimita grupos de linhas repetidas. Isso é equivalente a usar '-D' ou '--all-repeated'.
'prepend'
Insere uma nova linha na saída de cada grupo de linhas repetidas. Com '--zero-terminated' ou '-z', usa um byte zero (ASCII NUL) em vez de uma nova linha como delimitador.
'separate'
Separar grupos de linhas repetidas com uma única nova linha. Este é o mesmo que usar 'prepend', exceto que nenhum delimitador é inserido antes do primeiro grupo e, portanto, pode ser melhor adequado para a saída direta para os usuários.
5. Suprimindo as linhas duplicadas.
SHAMAN@shellscriptx:~$ uniq -u cores.txt
amarelo
branco
verde
6. Listando o número de repetições
SHAMAN@shellscriptx:~$ uniq -c cores.txt
3 azul
1 amarelo
2 vermelho
2 cinza
1 branco
2 preto
1 verde
Os itens repetidos porém não adjacentes são interpretados como um grupo distinto.
Para nosso último exemplo realizei alterações no arquivo cores.txt, deixando apenas as cores verde e azul, e adicionando duas tonalidades (claro e escuro).
Veja o seu conteúdo a seguir:
SHAMAN@shellscriptx:~$ cat cores.txt
azul escuro
verde escuro
azul claro
verde claro
Observe que os itens adjacentes são diferentes, onde a única semelhança é a sua tonalidade.
7. Listando a quantidade de repetições por tonalidade.
SHAMAN@shellscriptx:~$ uniq -f 1 -c cores.txt
2 azul escuro
2 azul claro
Ignora N campos em cada linha antes de verificar a exclusividade. Use um Null para comparação se uma linha tem menos de N campos. Os campos são sequências de caracteres não tabulares que são separadas entre si por pelo menos um espaço ou tab.
Para compatibilidade 'uniq' suporta uma sintaxe de opção obsoleta '-N'. Novos scripts devem usar '-f N' em vez disso.
Comentários
Postar um comentário