Exportar nome de arquivo [RESOLVIDO]

1. Exportar nome de arquivo [RESOLVIDO]

Jafé Ribeiro de Figueirêdo Filho
xdual

(usa Ubuntu)

Enviado em 26/08/2011 - 14:05h

Eu tenho um arquivo de texto que tem 3 linhas com um nome em cada. Eu queria saber qual seria o comando para exportar uma das linhas para um arquivo e nomeá-lo com o conteúdo da linha. Eu já consigo exportar, mas nomeá-lo de acordo com a linha não. Deixando mais claro:
Na linha 2 tem o nome "bola", então eu quero exportar o conteúdo "bola" para um arquivo chamado bola.txt
Na linha 3 tem o nome "cachorro", então eu quero exportar o conteúdo "cachorro" para um arquivo chamado cachorro.txt.




  


2. Re: Exportar nome de arquivo [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 26/08/2011 - 14:20h

#!/bin/bash

#coloca o nome do arquivo na variável arquivo
ARQUIVO="arquivo_com_nomes.txt"

# faz um loop com o while lendo linha a linha do arquivo e guardando na variável LINHA
while read LINHA; do
#pega o conteúdo da variável linha e cria um arquivo com o conteúdo.txt e ainda coloca o conteúdo da variável nesse arquivo
echo "$LINHA" > "$LINHA".txt
done < "$ARQUIVO"

----------


Prontinho, abraços


3. Complicando mais...

Jafé Ribeiro de Figueirêdo Filho
xdual

(usa Ubuntu)

Enviado em 26/08/2011 - 15:05h

Vocês são feras mesmo. Mas deixa eu complicar um pouco mais:
Eu tenho um arquivo de agenda vcf e quero exportar os contatos. Cada contato é composto por 5 linhas. Eu já consigo exportar todos os contatos com o comando: cat teste.vcf | head -5 | tail -5 > 001.vcf;cat teste.vcf | head -10 | tail -5 > 002.vcf.
O nome do contato é na terceira linha, exemplo: N:Orelhao
Qual expressão eu usaria para exportar o nome do contato, sem o "N:" (isto é, sem as duas primeiras colunas da linha) como o nome do arquivo (ao invés de 001.vcf, 002.vcf...).
Obrigado pela resposta anterior.


4. Re: Exportar nome de arquivo [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 26/08/2011 - 15:59h

Supondo que a variável LINHA em algum momento vai receber "N:Orelhao", então:

echo "$LINHA" | egrep '^N:' | cut -d':' -f 2

Abraços


5. Obrigado

Jafé Ribeiro de Figueirêdo Filho
xdual

(usa Ubuntu)

Enviado em 26/08/2011 - 18:22h

Essa dúvida você sanou. Vou abrir outro tópico mais específico. Sua solução funciona bem, mas agora estou precisando de algo mais específico.