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
escape-teken in tcsh balareddy Programmeren en Shell Scripting 1 08-15-2008 06:58
Escape character deepakpv Programmeren en Shell Scripting 4 02-16-2007 03:19
awk / ontsnappen karakter OFFSIHR Programmeren en Shell Scripting 8 11-29-2006 01:28 PM
Escape character in vi? stevefox Programmeren en Shell Scripting 4 11-17-2005 03:38 PM
mogelijk om te ontsnappen aan de \ teken in sed? gammaman UNIX voor Dummies Questions & Answers 1 07-07-2005 03:49 PM

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 10-07-2008
c00kie88 c00kie88 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Posts: 63
Angry Escape character - sed

Hi All,

Hoe schrijf ik in sed voor het 6de en 7de gebied van etc / passwd bestand als het gaat om "/" karakter?

Is de mijne hieronder is juist? Het is onvolledig script als ik hulp nodig heb met syntaxis zoals ik altijd krijg mei fouten

Voorbeeld van etc / passwd bestand:

blah: x: 1055:600: blah blah: / home / bla: / bin / ksh

sed "s / \ ($ naam:.: [0-9] *: \) [0-9] *: \ (.* \): \ (\ / .* \ / .* \): \ (\ / .* \ / .* \)

Laatst gewijzigd door c00kie88; op 10.07.2008 09:17..
  #2 (permalink)  
Old 10-07-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
De separator na s kan elk karakter. Ook ik zou raden u enkele aanhalingstekens rond het script, tenzij u uitdrukkelijk moeten dubbele aanhalingstekens (in welk geval de backslashes moeten worden verdubbeld).


Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'

Let op de mix van enkele en dubbele aanhalingstekens hierboven.
  #3 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Posts: 63
Ik heb het geprobeerd, maar dat zegt "SED: Command onleesbaar:
  #4 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Posts: 63
Het ziet er als:

sed "s / \ ($ naam:.: [0-9] *: \) [0-9] *: \ (.* \): \ (/.*/.* \): \ (/.*/ .* \) / \ 1 $ antwoord \ 2 / '/ etc / passwd

Ik probeerde enkele aanhalingstekens als tijdperk gesuggereerd, maar SED is niet gelukkig
  #5 (permalink)  
Old 10-08-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
Herhaal: je moet het dubbele backslashes als u gebruik dubbele aanhalingstekens. Dit is een artefact van de shell's citeren mechanismen, niet van sed syntaxis als zodanig. Als u gebruik maken van de schuine streep als scheidingsteken, hebt u behoefte aan backslash geen slashes die niet scheidingstekens, maar het is beter om gewoon met een ander scheidingsteken.


Code:
sed "s%\\($name:.:[0-9]*:\\)[0-9]*:\\(.*\\):\\(/.*/.*\\):\\(/.*/.*\\)%\1$answer\2%" /etc/passwd

Met enkele aanhalingstekens, dat wordt


Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd

De variabelen $ naam of $ antwoord uiteraard niet het scheidingsteken in hun waarden (of je moet ontsnappen aan de waarden).

Laatst gewijzigd door tijdperk; op 10.08.2008 03:15.. Reden: Behoefte om te ontsnappen aan variabelen als zij het scheidingsteken
  #6 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Posts: 63
Ok ..

Ik gebruik enkel citaat ..

sed 's / \ (' "$ naam "':.:[ 0-9] *: \) [0-9] *: \ (.* \): \ (/.*/.* \): \ ( /.*/.* \) '/ etc / passwd

maar nog steeds geen goede ..

Wat heb ik verkeerd doe?
  #7 (permalink)  
Old 10-08-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
U bent niet kopiëren + plakken correct, en niet de rapportage terug wat de foutmelding is. "Nog steeds geen goed" is niet een nuttige diagnostische. Maar als je zorgvuldig gebruik van uw muis te kopiëren + plak de commando's hierboven en zorgvuldig kopiëren + plakken eventuele fouten terug, we kunnen je helpen.

"Onbekende optie s" betekent dat je iets na (wat sed denkt is) de definitieve scheidingsteken dat geen geldige optie voor s / van / naar / gp (hier, "g" en "P" zijn opties). In dit geval, het is gewoon omdat je nog steeds gebruik maken van de schuine streep als scheidingsteken, zonder ontsnapt die slashes die niet scheidingstekens. Wijzig de separator naar%, of ontsnappen aan de slashes als dat nodig is.

Ook uw commando gedeeltelijke, je mist de "aan" deel \ 1 $ antwoord \ 2
Closed Thread

Bladwijzers

Labels
citeren, sed syntaxis

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 04:25.


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