![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
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. |
|
||||
|
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 Kod:
$./test sed -n '/08465696_1215781522540/,/70225547_1215781581748/p' test1.txt |
|
||||
|
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? |
|
||||
|
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> <fel etail> Ett fel uppstodsamtidigt som man försöker behandla en routing begäran, se bifogade listan över undantag för "det ails </ fel etail> <_05_1:MessageIdentifier> ERR: 70225547_1215781581748 </ _05_1: MessageIdentifier>: Ingen sådan fil eller katalog |
|
||||
|
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 ![]() |