Comando para trabalhar em todos os arquivos em uma pasta e resultado de saída para um único arquivo

2

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.

    
por Demostroyer 01.12.2014 / 15:46

2 respostas

2
sed -d 's/\s/\n/g' * | sort | uniq -c | sort -nr >> lyrics01wordcount.tf

Simples.

    
por 01.12.2014 / 16:18
1

Duas coisas:

  1. Você não precisa usar o redirecionamento com 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 ...)
  2. Sem redirecionamento, você pode especificar vários arquivos para sed : sed ... file1 file2 ... ou, no seu caso, como KasiyA apontou, sed ... *.txt .
por 01.12.2014 / 16:05