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 man ska utföra en sh kommando från en csh skript bonovox Shell-programmering och Skript 2 06-25-2008 05:24
Hur man bygger ett kommando i ett snöre i stället köra kommandot littlejon Shell-programmering och Skript 1 05-29-2008 09:05
shell script att verkställa användare kommando redtiger Shell-programmering och Skript 1 04-30-2008 07:53
script köra eller inte köra Kespinoza97 Shell-programmering och Skript 4 06-23-2007 10:27
Plz Help: Så här använder du skriva kommandot för att köra kommandot på någon annan terminal Aashish UNIX for Dummies Frågor & Svar 2 03-03-2006 12:25

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 07-17-2008
gugs gugs is offline
Registered User
  
 

Join Date: Jul 2008
Inlägg: 44
Please help: Bygg ett sed-kommando och utföra det i ett script

Jag använder en array för att lagra vissa uppgifter (nycklar t.ex. 47975081_1215781266128) kan man utgå ifrån att det är nyckeln till andra uppgifter.

Jag vill att extrahera data från en fil baserat på ett par knappar (intervall) och lagra resultaten i en variabel med hjälp av följande kommando:
sed -n '/ 47975081_1215781266128 /, / 42628155_1215781428374 / p "test1.txt

I mitt manus jag bygga en sed kommando och skriver den till en temp-fil med koden nedan:
Range1 \u003d "$ (knapparna [$ i])"
Område2 \u003d "$ (knapparna [$ i +1])"
a \u003d "sed -n '/ "
b \u003d"/,/"
c \u003d "/ p"
d \u003d "test1.txt"
echo "$ a $ range1 $ b $ Område2 $ c $ d"> temp.txt

Detta fungerar ok, det skriver följande sträng i temp-fil:
sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p "test1.txt

Och jag grep den här filen och ge innehåll till en variabel
sedcmd \u003d $ (grep sed temp.txt)

Men den sträng som utvinns har andra tecken bifogas, grep utdrag:
sed -n''\''/ 08465696_1215781522540 /, / 70225547_1215781581748 / p '\''' test1.txt

Det har lagt till:''\ 'före' / 08465 .... och \'' 'efter .... 48 / p "
Kan någon tala om för mig varför? och hur jag kan extrahera exakt vad som står i temp.txt fil och köra den.

I grunden vill jag bygga ett kommando, kör den och ge den innehåll till en matris.
  #2 (permalänk)  
Old 07-17-2008
cooldude cooldude is offline
Registered User
  
 

Join Date: mars 2006
Inlägg: 44
Jag har inte sett det.
Här är innehållet i temp.txt:
sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p "test1.txt

Här är mitt manus, test:
Kod:
#!/bin/ksh

sedcmd=$(grep sed temp.txt)

echo $sedcmd
Och jag innehållet i filen i $ sedcmd:
Kod:
$./test
sed -n '/08465696_1215781522540/,/70225547_1215781581748/p' test1.txt
Är du säker på att temp.txt har rätt innehåll?
  #3 (permalänk)  
Old 07-18-2008
gugs gugs is offline
Registered User
  
 

Join Date: Jul 2008
Inlägg: 44
Mer hjälp tack

Thanksk Det skriver citat till filen. Jag har åtgärdat problemet. Men jag är nu inför en annan som det kan finnas en enkel förklaring. När jag kör kommandot:

katt test1.txt | $ ($ sedcmd)> temp2.txt

där sedcmd \u003d sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p "

Jag kan inte få en effekt i temp2.txt. När jag kör skriptet i debug står det "Ingen sådan fil eller katalog"

Samma meddelande visas i debug även när jag kör:
sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p "test1.txt> temp2.txt


Alla idéer varför?
  #4 (permalänk)  
Old 07-18-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderator
  
 

Join Date: Sep 2007
Ort: Tyskland
Inlägg: 2.285
Det kommer inte att genomföras utan backticks eller enkla parentes. Chechk den understrukna backticks nedan.
Kod:
sedcmd = `sed -n '/08465696_1215781522540/,/70225547_1215781581748/p'`
  #5 (permalänk)  
Old 07-18-2008
gugs gugs is offline
Registered User
  
 

Join Date: Jul 2008
Inlägg: 44
Kommandot verkar köra OK. Se nedan har jag bifogat produktionen från debug:

+ Range1 \u003d 70225547_1215781581748
+ Område2 \u003d
+ A \u003d 'sed -n / "
+ B \u003d /, /
+ C \u003d / p
+ Echo 'sed -n / 70225547_1215781581748 /, / / p '
+ + Grep sed temp.txt
+ Sedcmd \u003d 'sed -n / 70225547_1215781581748 /, / / p '
+ Katt test1.txt
+ + sed -n / 70225547_1215781581748 /, / / p
+ "<_05_1:MessageIdentifier> ERR: 70225547_1215781581748 </ _05_1: MessageIdentifier>
"</ _05: ReceiveRequest> <? Xml" version \u003d "1.0" "encoding \u003d" UTF-8 "?> <Fel: Excepti
om "xmlns: error \u003d" hhtp/messages/exception/2006-06 "" xmlns
: xsi \u003d "http://www.w3.org/2001/XMLSchema-instance" "SchemaVersion \u003d" 1.0 "> <fel: Na
mig> ABC </ fel: Namn> <error:Code> 001 </ fel: Code> <feletail> Ett fel uppstod
samtidigt som man försöker behandla en routing begäran, se bifogade listan över undantag för "det
ails </ feletail> <_05_1:MessageIdentifier> ERR: 70225547_1215781581748 </ _05_1: MessageIdentifier>: Ingen sådan fil eller katalog
  #6 (permalänk)  
Old 07-18-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderator
  
 

Join Date: Sep 2007
Ort: Tyskland
Inlägg: 2.285
Du har som indatafil text1.txt. Kör sed kommando på tanken på det 1:a utan att rikta det mot en utdatafil. Bara testa, börja styra det, om det fungerar.
Och du använda taggarna [code] och [/ code] ha din kod mer eyefriendly för oss, ty
  #7 (permalänk)  
Old 07-18-2008
gugs gugs is offline
Registered User
  
 

Join Date: Jul 2008
Inlägg: 44
Koden nedan verk:

Range1 \u003d "$ (knapparna [$ i])"
Område2 \u003d "$ (knapparna [$ i +1])"
a \u003d "sed -n / "
b \u003d"/,/"
c \u003d "/ p"
echo "$ a $ range1 $ b $ Område2 $ c"> temp1.txt
sedcmd \u003d $ (grep sed temp1.txt)
errordata \u003d $ ($ sedcmd <test1.txt)
echo "$ errordata"> temp2.txt

Men jag är tvungen att upprepa variabelns innehåll till en fil som jag processen ytterligare.

Vad jag vill göra är att skicka data från $ sedcmd <test1.txt att temp2.txt med: katt test1.txt | $ ($ sedcmd)> temp2.txt. Men detta ger mig "Ingen sådan fil eller katalog" errorr
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 06:08.


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