sed -d 's/\s/\n/g' * | sort | uniq -c | sort -nr >> lyrics01wordcount.tf
Simples.
Eu tenho uma lista de arquivos, 10 para ser exato, em uma pasta de receita. Preciso determinar o número de ocorrências de cada palavra em todos os arquivos e, então, encomendá-los de acordo com essas frequências. Posso obter meu comando para trabalhar em um arquivo de cada vez, mas preciso que ele funcione em cada arquivo de uma vez e, em seguida, envie para um único arquivo. Por exemplo: A palavra salt aparece um total de 25 vezes no total, e a saída seria: 25 salt. Até agora eu tenho isso:
sed -d 's/\s/\n/g' < lyrics01.txt | sort | uniq -c | sort -nr >> lyrics01wordcount.tf
Eu preciso que isso seja alterado para funcionar em todos os arquivos no diretório, eu entendo por que ele está trabalhando em um acima. Qualquer ajuda seria muito apreciada.
Duas coisas:
sed
. Ele trata todos os nomes de arquivos como dados de entrada. Então sed ... lyrics01.txt
funciona tão bem quanto sed ... < lyrics01.txt
(melhor, na verdade, porque ...) sed
: sed ... file1 file2 ...
ou, no seu caso, como KasiyA apontou, sed ... *.txt
.