Como usar grep ou awk para salvar cada linha do arquivo de texto como novo arquivo?

2

Sou iniciante em scripts.
O que estou tentando fazer.

Eu tenho um arquivo de texto que se parece com isso (exemplo):

hello
hi there
apple

Estou tentando criar um script que salve cada linha como um novo arquivo separado com o conteúdo da linha como nome de arquivo.
O nome dos arquivos deve ser o seguinte (sem a extensão .txt para os arquivos de saída):

hello 
hi there
apple

Como posso usar grep ou awk para salvar cada linha de um arquivo de texto como um novo arquivo com o conteúdo da linha como nome de arquivo (sem a extensão .txt).
Obrigado por qualquer ajuda.

    
por linux-dude 07.07.2015 / 12:48

3 respostas

1

Esqueça usando grep ou awk e faça isso em seu shell.

    while IFS= read -r line
    do echo "$line" > "$line"
    done < FILE
    
por 07.07.2015 / 13:10
1

Você está determinado a usar o Grep / Awk?

Existe uma maneira muito mais fácil de fazer isso:

while read f; do echo "$f" > "$f"; done<file.txt

Certifique-se de usar aspas, especialmente para o nome do arquivo.

    
por 07.07.2015 / 13:10
0

Você não precisa de um loop se usar awk - print (por conta própria) é equivalente a print $0 , em que $0 é a linha de entrada completa, sem o% de\n. O seguinte é suficiente:

awk '{print>$0}' file
    
por 21.07.2015 / 06:51