![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| escape karakter i tcsh | balareddy | Shell programmering og Skripting | 1 | 08-15-2008 06:58 |
| Escape-tegn | deepakpv | Shell programmering og Skripting | 4 | 02-16-2007 03:19 |
| awk / escape tegn | OFFSIHR | Shell programmering og Skripting | 8 | 11-29-2006 01:28 |
| Escape karakter i vi? | stevefox | Shell programmering og Skripting | 4 | 11-17-2005 03:38 |
| mulig å unnslippe \ karakter i sed? | gammaman | UNIX for Dummies Spørsmål og svar | 1 | 07-07-2005 03:49 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Hei Alle,
Hvordan skriver jeg i sed for den 6. og 7nde feltet etc / passwd filen som den innebærer "/" tegnet? Har mine nedenfor er riktige? Det er ufullstendig script som jeg trenger hjelp med syntaksen som jeg alltid får mai feil ![]() Eksempel på etc / passwd filen: blah: x: 1055:600: blah blah: / home / blah: / bin / ksh sed "s / \ ($ navn:.: [0-9] *: \) [0-9] *: \ (.* \): \ (\ / .* \ / .* \): \ (\ / .* \ / .* \) Sist endret av c00kie88; 10-07-2008 på 09:17.. |
|
||||
|
Separatoren etter det kan være noen tegn. Også, jeg anbefaler å bruke enkle anførselstegn rundt script med mindre du spesifikt må doble anførselstegn (da de backslashes må doblet).
Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'
|
|
||||
|
Gjenta: du trenger å doble backslashes hvis du bruker doble anførselstegn. Dette er en artefact av Shells sitere mekanismer, ikke av sed syntaks som sådan. Hvis du bruker skråstrek som skilletegn du trenger å backslash noen skråstreker som ikke skilletegnene, men det er bedre å bare bruke et annet skilletegn.
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
Sist endret av æra; 10-08-2008 på 03:15.. Grunn: Trenger å unnslippe variabler hvis de inneholder separatoren |
|
||||
|
Du er ikke kopiere + lime riktig, og ikke rapporterer tilbake det feilmeldingen. "Fortsatt ingen god" er ikke et nyttig diagnostisk. Men hvis du nøye bruke musen til å kopiere + lime inn kommandoene ovenfor og forsiktig kopiere + lime eventuelle feil hit, vi vil kunne hjelpe deg.
"Ukjent alternativet s" betyr at du har noe etter (hva sed tror er) det endelige skilletegnet som ikke er en gyldig alternativ for s / fra / til / gp (her, "g" og "p" er alternativer). I dette tilfellet, er det fordi du fortsatt bruke skråstrek som skilletegn, uten escaping de skråstreker som ikke skilletegnene. Endre skilletegnet til% eller unnslippe skråstreker etter behov. Også din kommando er delvis; du mangler de "til" del \ 1 $ answer \ 2 |
![]() |
| Hugseliste |
| Tags |
| sitere, sed syntaks |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|