Olá, Pessoal! Meu nome é Fábio Costa e estou começando em Shell, tendo estudado tanto pelo "Papo de Botequim" do Júlio Neves (Fantástico) quanto pelo livro de Shell Script do mesmo (simplesmente necessário). Mas preciso de uma força e creio que vocês podem me dar uma forcinha em uma encrenca séria que estou tendo com o Shell.
Estou com um problema em um script shell que estou bolando aqui para o meu serviço. O objetivo do mesmo é pegar um arquivo CSV e extrair alguns dados dele. Na linha de comando, já tinha tentado o comando: head -n 1 $1 | sed 's/,/\n/g' | sed 's/"//g' E conseguido de maneira bem sucedida separar os nomes dos campos. Porém, esses nomes contêm espaços em branco e quando eu tento usar o comando: all_params=`head -n 1 $1 | sed 's/,/\n/g' | sed 's/"//g'` no meu Shell Script, ele coloca os nomes dos campos separados pelos espaços, o que não quero (quero que ele separe linha a linha, pois é como eu converto no segundo 'sed'). Além disso, tentei definir antes dessa linha a variável IFS para "\n", mas tudo que consegui foi fazer uma confusão dos diabos. Como exemplo, criei esse arquivo anexado (sed-test.txt), e rodei no take_value.sh em questão (tive que remover alguns trechos que são específicos do serviço meu, mas nada que vá interferir no que preciso desvendar :P ) e o resultado de passar o arquivo 'sed-test.txt' nele foi: teste de linha outro teste de linha mais um teste de linha Enquanto que quando usei o comando da variável all_params em um terminal, o resultado foi: teste de linha outro teste de linha mais um teste de linha Conforme esperado. Estou no Linux, Fedora Cora 2, shell "GNU bash, version 3.00.16(1)-release (i386-redhat-linux-gnu)". Alguma sugestão? Agradeço antecipadamente por qualquer retorno... -- Obrigado! Fábio Emilio Costa Analista de Software Básico I SERPRO - Serviço Federal de Processamento de Dados Performance - Ambiente Distribuído SUPCD/CDGTI/CDGS1 email: [EMAIL PROTECTED] Notes:fabioc Ramal: (#11) 1513 "Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco." "This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a government company established under Brazilian law (5.615/70) -- is directed exclusively to its addressee and may contain confidential data, protected under professional secrecy rules. Its unauthorized use is illegal and may subject the transgressor to the law's penalties. If you're not the addressee, please send it back, elucidating the failure." ---------- "teste de linha","outro teste de linha","mais um teste de linha" [As partes desta mensagem que não continham texto foram removidas] --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
