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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts