The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
undgå karaktär tcsh balareddy Shell-programmering och Skript 1 08-15-2008 05:58
Escape karaktär deepakpv Shell-programmering och Skript 4 02-16-2007 03:19
awk / fly karaktär OFFSIHR Shell-programmering och Skript 8 11-29-2006 01:28
Escape karaktär vi? stevefox Shell-programmering och Skript 4 11-17-2005 03:38
möjligt att undgå \ karaktär sed? gammaman UNIX for Dummies Frågor & Svar 1 07-07-2005 02: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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 10-07-2008
c00kie88 c00kie88 is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 63
Angry Escape karaktär - sed

Hej Alla,

Hur skriver jag i sed för den 6: e och 7:e området etc / passwd-filen, eftersom det innehåller tecknet "/"?

Har min nedan är korrekta? Det är ofullständigt manus som jag behöver hjälp med syntax som jag alltid får maj fel

Exempel på etc / passwd-filen:

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

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

Senast redigerad av c00kie88; 10-07-2008 vid 08:17..
  #2 (permalänk)  
Old 10-07-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
Avgränsaren efter er kan någon karaktär. Dessutom rekommenderar jag att du använder enkla citationstecken runt script om du inte uttryckligen behöver citationstecken (i vilket fall den omvända snedstreck måste fördubblats).

Kod:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'
Observera att kombinationen av inre och citationstecken ovan.
  #3 (permalänk)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 63
Jag försökte, men det står "SED: Kommando förvrängda:
  #4 (permalänk)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 63
Det ser ut som:

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

Jag har provat den enda anbud som era förslag, men SED inte är nöjd
  #5 (permalänk)  
Old 10-08-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
Upprepa: du behöver fördubbla omvända snedstreck om du använder citationstecken. Detta är en artefakt av tankskalets citera mekanismer, inte av sed syntax som sådan. Om du använder snedstreck som separator, du måste bakstreck alla snedstreck som inte separatorer, men det är bättre att helt enkelt använda en annan separator karaktär.

Kod:
sed "s%\\($name:.:[0-9]*:\\)[0-9]*:\\(.*\\):\\(/.*/.*\\):\\(/.*/.*\\)%\1$answer\2%" /etc/passwd
Med enkla citationstecken, som blir

Kod:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd
Variablerna $ name eller $ svar uppenbarligen inte kan innehålla avgränsaren karaktär i deras värderingar (eller du behöver för att undgå värden).

Senast redigerad av era; 10-08-2008 vid 02:15.. Motivering: Behov av att fly variabler om de innehåller avgränsaren
  #6 (permalänk)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 63
Ok ..

Jag använder enkla citattecken ..

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

men fortfarande inte bra ..

Vad har jag gjort fel??
  #7 (permalänk)  
Old 10-08-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
Du är inte kopiera + klistra korrekt och inte rapportera tillbaka vad felmeddelandet. "Fortfarande ingen bra" inte är en användbar diagnos. Men om du försiktigt använda musen för att kopiera + klistra in kommandon ovan och noggrant kopia + klistra eventuella fel hit, vi kanske kan hjälpa dig.

"Unknown option att s" innebär att du har något efter (vad sed tycker är) Sista separator som inte är ett realistiskt alternativ för s / från / till / gp (här, "g" och "p" är alternativ). I det här fallet, det är bara för att du fortfarande använda snedstreck som avgränsare, utan flyr de snedstreck som inte separatorer. Ändra avgränsare till% eller undgå snedstreck som krävs.

Även ditt kommando är partiell, du missar "till" en del \ 1 $ svara \ 2
Closed Thread

Komihåglista

Taggar
citera, sed syntax

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 02:05.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0