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
Omdirigera till en variabel? Eller är det cmd huven? oxoxo UNIX for Dummies Frågor & Svar 2 11-22-2008 08:59
omdirigera katt till rörlig shailesh_arya Shell-programmering och Skript 7 07-10-2008 05:34
Omdirigera till rörlig Mrad UNIX for Dummies Frågor & Svar 2 05-07-2007 05:18
Redirect från rörlig till kommandoraden? ugh UNIX for Dummies Frågor & Svar 8 03-28-2006 11:31
omdirigera kommando produktion till rörlig hugow UNIX for Dummies Frågor & Svar 1 06-22-2005 07:43

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 05-26-2009
dhibbit dhibbit is offline
Registered User
  
 

Join Date: maj 2009
Inlägg: 3
variabel omdirigera Messing upp ett sed-kommando.

Inte säker på om denna titel är anständigt, men here we go. Jag kör dessa rader med kommandon:

Kod:
qstat -f $1 | sed 's/^[ \t]*//' | sed -n -e ":a" -e "$ s/\n//gp;N;b a" | sed 's/\\,/,/' | awk -F"PBS_O_WORKDIR=" '{print $2}' | awk -F",PBS_O_SYSTEM" '{print $1}'
Om du är nyfiken är tar produktionen av en PBS kö, tar bort alla de ledande utrymmen, tar bort alla radbrytningar, tar bort backslash escape-tecknet framför varje kommatecken, då grabs produktionen mellan två strängar, ett effektivt sätt att utvinna en variabel från en stor röra av produktionen från PBS.

När jag kör det, det fungerar bra, alla steg fungerar perfekt. Men när jag direkt resultatet i en variabel, den sed kommando för att ta bort backslash misslyckas.

Så förenklade jag problemet:

echo "Hello \, World" | sed 's / \ \ ,/,/' -> "Hello, World"
var \u003d `echo" Hello \, World "| sed 's / \ \ ,/,/'`; echo $ var -> "Hej \, World"

några tankar?
  #2 (permalänk)  
Old 05-26-2009
JerryHone JerryHone is offline
Registered User
  
 

Join Date: Nov 2006
Ort: UK
Inlägg: 178
"Cascading backslash" alias "Leaning tandpetare"!

Kod:
var=`echo "Hello\,World" | sed 's/\\\,/,/'`; echo $var --> "Hello,World"
verkar fungera!

Det är för att baklängescitationstecken är leken en annan subshell, men den ursprungliga backslash har redan tolkats av den första.
  #3 (permalänk)  
Old 05-27-2009
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderator (The Tutor)
  
 

Join Date: juni 2008
Ort: INDIEN
Inlägg: 1,400
denna enkla tr kommer att göra det
Kod:
echo "Hello\,World"|tr -d '\\'
  #4 (permalänk)  
Old 05-27-2009
devtakh devtakh is offline
Registered User
  
 

Join Date: oktober 2007
Ort: Bangalore
Inlägg: 514
Eller

Kod:
var=$(echo "Hello\,world" | sed 's/\\,/,/g'); echo $var

-Devaraj Takhellambam
Closed Thread

Komihåglista

Taggar
backquotes, omvända snedstreck, omdirigera, sed

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 På
Smilies är På
[IMG] kod PÃ¥
HTML-koden är Av
Trackback är På
Pingbacks är På
Refbacks är På




Alla tider är GMT -4. Klockan är nu 11:42.


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