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
ewc
.
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.