The UNIX and Linux Forums  

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
Hur gör jag dubbel ersättning i bash? fly Shell-programmering och Skript 3 04-09-2009 05:51
Rörlig ersättning Leo_NN UNIX for Dummies Frågor & Svar 7 10-17-2008 12:24
Sed rörlig ersättning när variabel konstruerats av en sökvägen alrinno Shell-programmering och Skript 2 07-11-2008 03:24
Bash: Bad substitution problem ... pls hjälp! xfouxs UNIX for Dummies Frågor & Svar 1 11-23-2007 05:48
Substitution av en variabel spragueg UNIX för avancerade & Expertanvändare 3 10-18-2001 10:14

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 04-21-2009
trey85stang trey85stang is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 74
/bin / bash - variabel substitution.

Är det möjligt med en bash variabel utföra flera byta strängar på en variabel?

Jag har denna variabel:
echo $ klocka
TIMEZONE \u003d "US / Central"

Vad jag skulle vilja göra med bash bara det drar ut bara de "amerikanska" del av den rörliga .. som kan vara valfritt antal länder.

Det är där jag på:

echo $ (dygnet: 10)
US / Central "

echo $ (klocka: 10 # * /)
bash: test: 10 # * /: syntax error: operand väntat (fel tecken är "/")

echo $ (klocka # * /)
Central "


Så jag saknar bara något .. eller kan jag bara göra en typ av substition med en bash variabel?

tack,
Trey
  #2 (permalänk)  
Old 04-21-2009
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.346
Prova detta:


Kod:
echo $clock | sed 's!.*"\(.*\)/.*!\1!'

Hälsningar
  #3 (permalänk)  
Old 04-21-2009
colemar colemar is offline
Registered User
  
 

Join Date: april 2009
Ort: Trento, Italien
Inlägg: 116

Kod:
colemar@deb:~$ echo ${clock:10:2}
US

colemar@deb:~$ a=${clock#*\"}
colemar@deb:~$ echo $a
US/Central"
colemar@deb:~$ echo ${a%%/*}
US


Senast redigerad av colemar; 04-21-2009 at 05:49.. Reason:%%
  #4 (permalänk)  
Old 04-21-2009
trey85stang trey85stang is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 74
Citat:
Ursprungligen postat av Franklin52 View Post
Prova detta:


Kod:
echo $clock | sed 's!.*"\(.*\)/.*!\1!'

Hälsningar
Tack, men jag var verkligen bara undrar om jag kan göra allt med bash.

Citat:
Ursprungligen postat av colemar View Post
Kod:
colemar@deb:~$ echo ${clock:10:2}
US
Jag vet det, men problemet ligger att USA inte är alway USA varför det kan vara mer än 2 tecken ...
  #5 (permalänk)  
Old 04-21-2009
colemar colemar is offline
Registered User
  
 

Join Date: april 2009
Ort: Trento, Italien
Inlägg: 116
Citat:
Ursprungligen postat av trey85stang View Post
Jag vet det, men problemet ligger att USA inte är alway USA varför det kan vara mer än 2 tecken ...
Måste du göra det i två steg, som beskrivs ovan.
Jag tror det finns inget sätt att göra det på en gång med bash parametrar substitution.
  #6 (permalänk)  
Old 04-21-2009
colemar colemar is offline
Registered User
  
 

Join Date: april 2009
Ort: Trento, Italien
Inlägg: 116
Citat:
Ursprungligen postat av colemar View Post
Jag tror det finns inget sätt att göra det på en gång med bash parametrar substitution.
Tycks vara möjligt, men ful:

Kod:
colemar@deb:~$ echo ${clock//@(*?=\"|\/*?)/}
US

  #7 (permalänk)  
Old 04-21-2009
trey85stang trey85stang is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 74
Citat:
Ursprungligen postat av colemar View Post
Tycks vara möjligt, men ful:

Kod:
colemar@deb:~$ echo ${clock//@(*?=\"|\/*?)/}
US
ser ut som kommer att göra det, good stuff. Jag uppskattar det. Detta kommer att spara mig en hel del arbete att skapa en massa variabler i ett manus
Closed Thread

Komihåglista

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 10:32.


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