![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
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.. |
|
||||
|
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]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'
|
|
||||
|
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 Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd
Sidst redigeret af æra; 10-08-2008 på 02:15 AM.. Årsag: Behov for at undslippe variabler, hvis de indeholder separator |
|
||||
|
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 |
![]() |
| Bogmærker |
| Tags |
| citere, sed syntaks |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|