The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
undslippe karakter i tcsh balareddy Shell Programmering og Scripting 1 08-15-2008 05:58 AM
Escape karakter deepakpv Shell Programmering og Scripting 4 02-16-2007 03:19 AM
awk / undslippe karakter OFFSIHR Shell Programmering og Scripting 8 11-29-2006 01:28 PM
Escape saerpraeg vi? stevefox Shell Programmering og Scripting 4 11-17-2005 03:38 PM
muligt at undslippe \ karakter i sed? gammaman UNIX for dummyer Spørgsmål & svar 1 07-07-2005 02: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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 10-07-2008
c00kie88 c00kie88 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 63
Angry Escape karakter - sed

Hi All,

Hvordan skriver jeg i sed for 6. og 7. området etc / passwd fil som det indebærer tegnet "/"?

Er mine nedenfor er korrekte? Det er ufuldstændige script som jeg har brug for hjælp med syntaks som jeg altid at få mai fejl

Eksempel på etc / passwd file:

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

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

Sidst redigeret af c00kie88; 10-07-2008 på 08:17 AM..
  #2 (permalink)  
Old 10-07-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Separatoren efter s kan være enhver karakter. Også, jeg vil anbefale at bruge enkelt anførselstegn omkring scriptet medmindre du specifikt behov dobbelte anførselstegn (i hvilket tilfælde backslashes skal fordoblet).

Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'
Bemærk den blanding af fælles og dobbelte anførselstegn ovenfor.
  #3 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 63
Jeg forsøgte, men det siger "SED: Kommando forvansket:
  #4 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 63
Det ser ud:

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

Jeg prøvede det én citerer som æra foreslået, men SED er ikke tilfredse
  #5 (permalink)  
Old 10-08-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Gentag: du har brug for at fordoble backslashes hvis du bruger dobbelt anførselstegn. Dette er et klenodie af råtanken's citerer mekanismer, ikke af sed syntaks som sådan. Hvis du bruger skråstreg som separator, du har brug for at backslash enhver skråstreger, som ikke er separatorer; men det er bedre blot at bruge en anden separatortegn.

Code:
sed "s%\\($name:.:[0-9]*:\\)[0-9]*:\\(.*\\):\\(/.*/.*\\):\\(/.*/.*\\)%\1$answer\2%" /etc/passwd
Med enkelt anførselstegn, som bliver

Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd
Variablerne $ name eller $ svar kan naturligvis ikke indeholder separatortegn i deres værdier (eller du har brug for at flygte fra de værdier).

Sidst redigeret af æra; 10-08-2008 på 02:15 AM.. Årsag: Behov for at undslippe variabler, hvis de indeholder separator
  #6 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 63
Ok ..

Jeg bruger enkelt citat ..

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

men stadig ikke godt ..

Hvad gjorde jeg galt???
  #7 (permalink)  
Old 10-08-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Du er ikke kopiere + indsætter korrekt, og ikke rapportering tilbage hvad fejlmeddelelsen. "Stadig ingen god" er ikke en brugbar diagnostisk. Men hvis du omhyggeligt bruge musen til at kopiere + indsæt kommandoerne ovenfor, og nøje kopi + indsætte eventuelle fejl tilbage her, vi kan være i stand til at hjælpe dig.

"Ukendt mulighed for at s" betyder, at du har noget efter (hvad sed mener er) den endelige separator der er ikke et gyldigt alternativ for s / fra / til / gp (her "g" og "p" er optioner). I dette tilfælde, er det blot fordi du stadig bruge skråstreg som separator, uden at undslippe dem, skråstreger, som ikke er separatorer. Skift separator til% eller undslippe skråstreg efter behov.

Også din kommando er delvis; du mangler den "til" en del \ 1 $ svar \ 2
Closed Thread

Bogmærker

Tags
citere, sed syntaks

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 09:53 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0