The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
dubbele variabele verklaring kotasateesh Programmeren en Shell Scripting 3 08-31-2007 06:29
Escape Char voor dubbel aanhalingsteken navik_pathak Programmeren en Shell Scripting 1 01-05-2007 02:34 PM
enkele of dubbele aanhalingstekens in SED Asami Programmeren en Shell Scripting 2 07-17-2006 04:03
Dubbele aanhalingstekens in een variabele burton_1080 Programmeren en Shell Scripting 4 12-01-2005 01:44 PM
dubbele variabele substitutie asal_email2 UNIX voor Dummies Questions & Answers 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 2
Probleem met dubbele aanhalingstekens en strijkorkest variabele

Hallo,

Ik heb een bestand output.txt die een enkele regel met een lijst van bestanden met citaten:
"bestand1.ext" "bestand2.ext" "file3.ext"

In een shell script, ik wil op te halen van de lijn en het gebruiken als een variabele in een commando als:
zip archive.zip $ LIJST

I cant get it werk. Toen ik fysiek Typ het commando zip archive.zip "bestand1.ext" "bestand2.ext" "file3.ext", het werkt allemaal prima, maar als ik probeer om een string variabele Ik krijg een foutmelding.

Is er een goede manier om dat te doen?
Bedankt!
  #2 (permalink)  
Old 03-17-2008
tijdperk
Score
  
 

Berichten: n / a
Bits: 0 [Banking]
Wanneer u het op de command line, de dubbele aanhalingstekens zijn niet doorgegeven aan zip. Als u een script (tonen!) Dan als het passeren van de aanhalingstekens, zodat zip ziet ze daar mee ophouden.

Als u de controle over het ding waarop de output bestand, maken het gebruik van een minder duivelstoejager formaat. Zie hoe xargs doet, dat het waarschijnlijk een goed model voor je.
  #3 (permalink)  
Old 03-17-2008
KevinADC KevinADC is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 731
Citaat:
Ik heb een bestand output.txt die een enkele regel met een lijst van bestanden met citaten:
"bestand1.ext" "bestand2.ext" "file3.ext"
Open het bestand en verwijder de aanhalingstekens als je geen controle over de bestandsindeling. Daarna splitsen de gebieden op de ruimten voor het maken van een lijst van bestanden te voeden naar de zip-functie.

Upload uw huidige code (of het betreffende deel) voor meer hulp.
  #4 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 2
Citaat:
Oorspronkelijk geplaatst door KevinADC View Post
Open het bestand en verwijder de aanhalingstekens als je geen controle over de bestandsindeling. Daarna splitsen de gebieden op de ruimten voor het maken van een lijst van bestanden te voeden naar de zip-functie.

Upload uw huidige code (of het betreffende deel) voor meer hulp.
Hier is het deel van mijn script waar ik mijn bestanden lijst:
Code:
LIST=$(tail -1 $FILE)
cvs log -N -r$rev1:$rev2 $LIST > changelog.txt
Mijn bestand ziet er als volgt uit:
Code:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java"
Het is de output van een xslt verwerking dus ik heb wel de controle er op. Ik kan een bestand dat ziet er zo uit, zonder aanhalingstekens en mijn script werkt perfect:
Code:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java
Maar ik wilde wrap de bestandsnamen rond quotes in geval enkele van de bestandsnamen bevatten whitespaces.

Dus misschien moet ik werken aan mijn XSL-stylesheet om te ontsnappen whitespaces in de bestandsnamen?
  #5 (permalink)  
Old 03-18-2008
tijdperk
Score
  
 

Berichten: n / a
Bits: 0 [Banking]
Of als u de optie, zodat het een bestand per lijn (en zorgen over bestandsnamen met newlines in hen plaats ...).

xargs heeft een optie voor het gebruik van een null (ASCII 0x00) terminatorsequenties voor dat specifieke geval. (Null en slashes zijn de enige twee personages die zijn afgewezen in de directory binnenkomst namen.)
  #6 (permalink)  
Old 03-18-2008
yunccll yunccll is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 23
als je wilt doen dit werk met script, dan kunt u proberen code als volgt:
Code:
#!/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
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 11
Probleem met dubbele aanhalingstekens en strijkorkest variabele

Hier is een snelle oplossing voor uw script

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

-Ramesh
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 06:56.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0