![]() |
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.
|
|
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 |
| awk Shell skriptfel: "Syntaxfel:" Split "oväntade | Herry | UNIX for Dummies Frågor & Svar | 2 | 03-17-2008 11:16 |
| fel under Upplaga: St9bad_alloc - Att få detta fel när du använder vissa omställning Progr | sathu_pec | Shell-programmering och Skript | 1 | 01-21-2008 02:38 |
| Jag fick fel som ... syntaxfel på linje 1, teletype | koti_rama | UNIX för avancerade & Expertanvändare | 2 | 07-07-2007 07:35 |
| Fel vid läsning av avsnitten fel vid installation | doelman | Sun Solaris | 2 | 02-05-2007 12:21 |
| Fel: Internt systemfel: Det går inte att initiera standard utdatafilen | firkus | UNIX for Dummies Frågor & Svar | 2 | 10-25-2005 03:23 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
#1 (permalänk)
|
||||
|
||||
|
Fel vid användning av sed
Hej,
Jag har en indatafil med följande innehåll -------------------------------------------------- ------- Kör Antal: 1 --------------------------------------- -------------------- test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Started | 05/28/2007 02:19:30 | TEST | 8651 -------------------------------------------------- ------- out_file ------------------------------------------ ----------------- item_id | status_desc | beskrivning test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Avslutade | 05/28/2007 02:19:33 | TEST | 8651 -------------------------------------------------- ------- Kör Antal: 2 --------------------------------------- -------------------- test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Started | 05/28/2007 02:27:25 | TEST | 24745 -------------------------------------------------- ------- out_file ------------------------------------------ ----------------- item_id | status_desc | beskrivning test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Avslutade | 05/28/2007 02:27:27 | TEST | 24745 -------------------------------------------------- ------- Kör Nummer: 3 --------------------------------------- -------------------- test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Started | 05/28/2007 02:56:32 | TEST | 5560 -------------------------------------------------- ------- out_file ------------------------------------------ ----------------- item_id | status_desc | beskrivning test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Avslutade | 05/28/2007 02:56:34 | TEST | 5560 -------------------------------------------------- ------- Kör Nummer: 4 --------------------------------------- -------------------- test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Started | 05/28/2007 02:57:32 | TEST | 11961 -------------------------------------------------- ------- out_file ------------------------------------------ ----------------- item_id | status_desc | beskrivning test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Avslutade | 05/28/2007 02:57:33 | TEST | 11961 -------------------------------------------------- ------- Kör Nummer: 5 --------------------------------------- -------------------- test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Started | 05/28/2007 04:17:31 | TEST | 24685 -------------------------------------------------- ------- out_file ------------------------------------------ ----------------- item_id | status_desc | beskrivning test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] | Avslutade | 05/28/2007 04:17:33 | TEST | 24685 Ingång till skriptet kommer att test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt] Mitt jobb är att utvinna den sista förekomsten av uttryck som är från IP_EXPR | Started tp IP_EXPR | Kompl Jag försökte med sed men det visar följande felmeddelande sed:-E uttryck # 1, röding 40: extra tecken efter kommandot Sedan är min kod IP \u003d "test_run-layout test_vaal-i [/ x/TEST/batch/temp/20070528_ip.txt / x/TEST/batch/temp/20070528__op.txt]" IP_FILE \u003d "test.txt" Expr \u003d "echo $ UP | sed 's / \ [/ / g "| sed 's / \] / / g' ` echo "expr är: $ (expr)" EXTRAHERAT \u003d `cat $ IP_FILE | sed 's / \ [/ / g "| sed 's / \] / / g "|sed 's / /! / g "| sed -n "/ $ (expr }/,/${ expr) / p" " echo "EXTRAHERAT är: $ (EXTRAHERAT)" Kan någon hjälpa mig i detta Raghu |
|
#2 (permalänk)
|
|||||
|
|||||
|
Ditt problem kommer från de senaste sed kommando, eftersom $ expr innehåller tecknet /. Lösningen är att använda en annan karaktär än / för mönster avgränsare, § till exempel.
De två följande kommandon är likvärdiga. Kod:
$ sed 's/pattern/replacement/flags' file $ sed 's\§pattern§replacement§flags' file Kod:
IP="test_run -layout test_vaal -i [ /x/TEST/batch/temp/20070528_ip.txt /x/TEST/batch/temp/20070528__op.txt]"
IP_FILE="test.txt"
EXPR=`echo $IP | sed 's/[][]//g;s/ */ /g'`
echo "EXPR is : ${EXPR}"
EXTRACTED=`sed 's/[][]//g;s/ */ /g' $IP_FILE | sed -n "\§${EXPR}|Started§,\§${EXPR}|Completed§p" `
echo "EXTRACTED is : ${EXTRACTED}"
En möjlig lösning (med hjälp av awk) Kod:
IP="test_run -layout test_vaal -i [ /x/TEST/batch/temp/20070528_ip.txt /x/TEST/batch/temp/20070528__op.txt]"
IP_FILE="test.txt"
awk -v ip="$IP" '
BEGIN {
gsub(/[][]/, "", ip);
gsub(/ */, " ", ip);
}
{
gsub(/[][]/, "");
gsub(/ */, " ");
if ($0 !~ ip) next;
}
/|Started/,/|Completed/ {
if (/|Started/) count=0;
line[++count] = $0;
}
END {
for (l=1; l<=count; l++) print line[l];
}
' $IP_FILE
Kod:
test_run -layout test_vaal -i /x/TEST/batch/temp/20070528_ip.txt /x/TEST/batch/temp/20070528__op.txt|Started|05/28/2007 04:17:31|TES T|24685 test_run -layout test_vaal -i /x/TEST/batch/temp/20070528_ip.txt /x/TEST/batch/temp/20070528__op.txt|Completed|05/28/2007 04:17:33|T EST|24685 |
|
#3 (permalänk)
|
||||
|
||||
|
HI,
Tack så mycket. Det började arbeta Efter att lägga ut den Jag tyckte att / var att skapa ett problem. Tack en gång till ur insatsvaror Raghuram |
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|