Aqui está minha tentativa nessa tarefa:
Passo 1 - crie uma lista de todos os arquivos de texto que você deseja ter uma palavra. Nomeado meu list
e um perline listado text1, text2, text3 e text4
Passo 2 - Crie uma lista de palavras, uma por linha. O meu é chamado word
Etapa 3 - execute o seguinte comando: pr -m -t words list | awk '{x=$2; print $1>x}'
Agora, é claro, não é uma linha direta, mas funcionou para mim. Minha lista de palavras era one two three four
e agora text1 tem one
, text2 tem two
e assim por diante
Editar :
Aqui está minha tentativa grosseira de endereçar espaços entre palavras no arquivo words: translate \n
para outro caractere e então usar esse caractere como delimitador no awk. Eu testei isso com
df | tr '\n' '@' | awk -F '@' '{for (i=1;i<5;i++) print $i > "file"i".txt" }'
O resultado é que eu tenho 4 arquivos diferentes, com 4 linhas consecutivas do comando df
. Substitua df
por cat words
. Aqui está o resultado
E sim, esse método não é perfeito; e se uma linha contiver @
no meio dela ou no final. Mas este método é flexível - @
pode ser substituído por outra coisa. Além disso, o usuário provavelmente deve estar ciente ao tentar processar arquivos de texto como eles são delimitados; bom exemplo é /etc/passwd
, onde os campos são separados por :
, e ninguém cobrado cegamente para processar esse arquivo, certo?