Gostaria de saber como contar quantas vezes aparece uma palavra em um determinado texto. Mas preciso fazer isso via linha de comando pois no servidor não tem interface gráfica. Por exemplo quantas vezes aparece a palavra "bruno" dentro do arquivo nomes.txt
então, esse jeito usando grep com wc acho que já resolve meu problema, mas se alguém souber como fazer para contar todas ocorrencias da palavra me fala, pois tem casos onde iremos precisar contar até as palavras que se repetem em uma mesma linha.
Eu testei aqui com um nome qualquer, depois alterei para $NOME para ficar mais bonito :D. Acontece que $NOME não funciona dentro de aspas simples ('), só em aspas duplas("). Então tem que alterar o sed para:
sed "s/$NOME\b/$NOME\n/g" bbb
É só aspas, mas faz toda a diferença.
Outro detalhe é grep. Não é pra fazer um grep no arquivo, mas na saido do sed.
sed "s/$NOME\b/$NOME\n/g" bbb | grep "$NOME\b"
Pronto, agora sim funciona e é só contar as linhas :
sed "s/$NOME\b/$NOME\n/g" bbb | grep "$NOME\b" | wc -l
O "\b" no sed e grep é pra se você procurar por MARIA ele não achar MARIAna