The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
dupla variável declaração kotasateesh Programação Shell Script e 3 08-31-2007 06:29
Escape Char para aspas duplas navik_pathak Programação Shell Script e 1 01-05-2007 02:34
única ou dupla cotação em SED Asami Programação Shell Script e 2 07-17-2006 04:03
Aspas dentro de uma variável burton_1080 Programação Shell Script e 4 12-01-2005 01:44
variável dupla substituição asal_email2 UNIX para Dummies Perguntas & Respostas 1 06-14-2005 01:35

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Usuário
  
 

Join Date: Mar 2008
Posts: 2
Problema com aspas duplas e variável string

Olá,

Tenho output.txt um ficheiro que contém uma única linha com uma lista de arquivos com aspas:
"file1.ext" "file2.ext" "file3.ext"

Em um shell script, eu quero recuperar a linha e utilizá-lo como uma variável em um comando como:
zip archive.zip $ LISTA

I cant get it trabalho. Quando eu fisicamente digite o comando zip archive.zip "file1.ext" "file2.ext" "file3.ext", ele funciona muito bem, mas quando tento usar uma seqüência variável eu recebo um erro.

Existe uma boa maneira de fazer isso?
Obrigado!
  #2 (permalink)  
Old 03-17-2008
era
Convidado
  
 

Posts: n / a
Bits: 0 [Bancária]
Quando você digita-lo na linha de comando, as aspas não são passadas para o zip. Se você estiver usando um script (mostrá-la!), Então, se está a passar no aspas para que zip vê-los, parar de fazer isso.

Se você tem controle sobre a coisa que gera o arquivo de saída, faça-o usar um formato menos bobo. Veja como ele xargs; isso é provavelmente um bom modelo para você.
  #3 (permalink)  
Old 03-17-2008
KevinADC KevinADC is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2008
Lugares: 731
Citação:
Tenho output.txt um ficheiro que contém uma única linha com uma lista de arquivos com aspas:
"file1.ext" "file2.ext" "file3.ext"
abrir o arquivo e remova as aspas se você não tem controle sobre o formato do ficheiro. Em seguida, dividir os domínios sobre os espaços para criar uma lista de arquivos zip para alimentar a função.

Publique o seu código atual (ou apenas a parte relevante) para obter mais ajuda.
  #4 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Usuário
  
 

Join Date: Mar 2008
Posts: 2
Citação:
Originally Posted by KevinADC View Post
abrir o arquivo e remova as aspas se você não tem controle sobre o formato do ficheiro. Em seguida, dividir os domínios sobre os espaços para criar uma lista de arquivos zip para alimentar a função.

Publique o seu código atual (ou apenas a parte relevante) para obter mais ajuda.
Aqui é a parte do meu script que eu preciso de meus arquivos lista:

Código:
LIST=$(tail -1 $FILE)
cvs log -N -r$rev1:$rev2 $LIST > changelog.txt

O meu arquivo tem o seguinte aspecto:

Código:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java"

É o resultado de uma transformação xslt assim, devo dizer que tenho controle sobre ela. Posso gerar um arquivo que parece isso, sem aspas e meu script funciona perfeitamente:

Código:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java

Mas eu queria para embrulhar as aspas em torno de filenames em caso alguns dos ficheiros contêm whitespaces.

Então, talvez eu deva trabalhar em minha folha de estilo XSL, a fim de escapar whitespaces no arquivo?
  #5 (permalink)  
Old 03-18-2008
era
Convidado
  
 

Posts: n / a
Bits: 0 [Bancária]
Ou se você tem a opção de torná-la um ficheiro por linha (e se preocupar com arquivos com nomes newlines em vez ...).

xargs tem uma opção para usar um nulo (ASCII 0x00) terminador para esse caso específico. (Barras e Nulos são os únicos dois personagens que não estão no diretório entrada nomes.)
  #6 (permalink)  
Old 03-18-2008
yunccll yunccll is offline
Usuário
  
 

Join Date: Mar 2008
Lugares: 23
se você quiser fazer este trabalho com o script, você pode tentar usar o código como segue:

Código:
#!/bin/bash

INFILE=output.txt

#replace the double quote with space
LIST=$(sed -e 's/\"/ /g' $INFILE)

zip archive.zip $LIST

exit 0

  #7 (permalink)  
Old 03-19-2008
faltooweb faltooweb is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 11
Problema com aspas duplas e variável string

Aqui está uma rápida correção para o script

LISTA \u003d $ (tail -1 $ FILE)
cvs log-N-R $ rev1: REV2 $ $ (eval $ LISTA)> changelog.txt

-Ramesh
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 12:13.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0