Procura por duplicatas na mesma linha

4

Eu gosto do que o comando uniq faz, mas procura por duplicatas em linhas diferentes. Eu gostaria de encontrar duplicatas, mesmo dentro da mesma linha. que comando pode fazer isso?

Considere this line this this line e talvez eu queira saber quantas vezes "isso" aparece na mesma linha.

Existe um comando que pode fazer isso?

    
por j0h 02.10.2016 / 15:21

2 respostas

4

Outra maneira de usar awk :

echo "this  line this this line"| \
awk  'BEGIN{print "count", "lineNum"}{print gsub(/\<this\>/,"") "\t" NR}'

count lineNum
3   1
  • Que imprime contagem e número da linha em que this palavra foi encontrada.

  • O valor de retorno da função gsub() é o número de substituições feitas. Então, usamos isso para imprimir o número.

  • NR contém o número da linha, então nós o usamos para imprimir o número da linha.

por snoop 02.10.2016 / 19:40
4

Você pode fazer:

grep -Eo '[^[:blank:]]+' file.txt | sort | uniq -c
  • grep -Eo '[^[:blank:]]+' obtém as palavras do arquivo separadas por qualquer (s) espaço (s) branco (ais)

  • sort classifica a saída

  • uniq -c obtém o limite de palavras

Exemplo:

% grep -Eo '[^[:blank:]]+' <<<'this  line this this line' | sort | uniq -c
      2 line
      3 this
    
por heemayl 02.10.2016 / 15:43