Eu criei um arquivo de texto com 1000 letras maiúsculas e minúsculas aleatórias:

cat /dev/urandom | tr -dc "a-zA-Z0-9" | head -c 1000 > file1 

Quantas vezes a palavra “gato” aparece neste arquivo, usando grep e wc?

Fiz assim:

grep -ic cat file1 

Mas conta as linhas em que aparece, enquanto quero verificar quantas vezes ele aparece nessa linha. Alguma ideia?

Comentários

  • fyi, tr pode usar [: alnum:] em vez do az .. . E você deseja contar quantas vezes ele aparece em todo o arquivo, não apenas em cada linha, ou em apenas uma linha em particular (você disse " naquela linha " no final)?

Resposta

O trabalho que tenho que fazer é descobrir quantas vezes neste arquivo aparece mundo “cat” usando o comando grep e wc.

Experimente:

grep -oi cat file1 | wc -l 

Exemplo:

$ cat file1 foo cat bar zoo cat random text cat dog foobar cat end! 

^ Temos quatro ocorrências de cat acima.

grep -oi cat file1 | wc -l 4 

De man grep (ênfase minha):

 -o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. 

Comentários

  • O comando acima encontrará todas as substring cat , mesmo que façam parte de outras palavras como bob gato e gato alougue. Mas o arquivo é criado de forma que não contenha espaço, nem quebra de palavra, nem quebra de linha. Portanto, esta é apenas uma observação.
  • @schweik Sim, é verdade. Não adicionei nenhum limite de palavra à minha resposta.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *