The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



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

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øk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 10-07-2008
c00kie88 c00kie88 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 63
Angry Escape karakter - sed

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..
  #2 (permalink)  
Old 10-07-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
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]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'
Legg merke til blanding av enkle og doble anførselstegn ovenfor.
  #3 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 63
Jeg prøvde det, men det står "SED: Kommandoen Ødelagt:
  #4 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 63
ser det ut som:

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

Jeg prøvde det enkelt anførselstegn som era foreslått, men SED er ikke fornøyd
  #5 (permalink)  
Old 10-08-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
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
Med enkle anførselstegn, som blir

Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd
Variablene $ navn eller $ svar Selvsagt kan ikke inneholde skilletegn i sine verdier (eller du må unnslippe verdier).

Sist endret av æra; 10-08-2008 på 03:15.. Grunn: Trenger å unnslippe variabler hvis de inneholder separatoren
  #6 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 63
Ok ..

Jeg bruker enkelt anførselstegn ..

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

men likevel ikke godt ..

hva gjorde jeg galt??
  #7 (permalink)  
Old 10-08-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
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
Closed Thread

Hugseliste

Tags
sitere, sed syntaks

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:54.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0