sed: kein vorheriger regulärer Ausdruck

Ich versuche, führen Sie den folgenden Ausdruck in einem script zu finden, ein Gerät aus und ändern Sie die Felder, die mit dem Gerät in eine html-Datei.

sed -e "s/$OLDTEST/$TESTING/" -e "s/$CURRENTVALU/$NEWSTATUS---$DATE/" -e "s/$PASSORFAIL/$PASSORFAILNEW/" -e "s/$BGCOLOR/$BGCOLORNEW/$POSITION"  -e "s/$OLDNOTE/$NOTE/"  >> //sysadm/shared/file.tmp

Scheine ich immer ein "no previous regular expression". Irgendwelche Ideen?

debug-log-Ausgabe:

sed -e s//Yes/-e s//Resolved---03-25-13/-e s//Pass/-e s//#348017/1 -e s///

sed: -e expression #5, char 0: no previous regular expression

Dank,
Dave

  • Sind Sie versuchen, zu ersetzen, eine wörtliche Folge von z.B. $OLDTEST in der Quell-Datei, oder sind OLDTEST, TESTEN, etc. Variablen, die enthält Dinge, die Sie für die Suche/ersetzen? Wenn der ehemalige, verwenden Sie einfache Anführungszeichen, um zu verhindern, dass die expansion, wenn das letztere, dann müssen wir wissen, was diese enthalten die Variablen...
  • Ich bin versucht, suchen eine Reihenfolge, und dann, sobald ich es finde, tausche ich alle items, die mit Ihr verbundenen
  • while read LINE do if echo $LINE |grep $ROUTER - > /dev/null 2>&1 dann CURRENTVALU=echo $LINE |awk '{print $53}'| sed 's/ //' echo $LINE | sed -e "s/$OLDTEST/$TEST/" -e "s/$CURRENTVALU/$NEWSTATUS---$DATE/" -e "s/$PASSORFAIL/$PASSORFAILNEW/" -e "s/$BGCOLOR/$BGCOLORNEW/$POSITION," - e "s/$OLDNOTE/$NOTE/" >> /sysadmin/shared/file.tmp
  • elif echo $LINE |grep-Geräte > /dev/null 2>&1 then echo $LINE | sed -e "s/$CURRENTDEV/$DEV/" -e "s/$CURRENTTOTAL/$TOTAL/" -e "s/$CURRENTPASS/$PASS/" -e "s/$CURRENTFAIL/$FAIL - /" - e "s/$CURRENTPCNT/$PERCNT/" >> /sysadmin/shared/file.tmp else echo $LINE >> /sysadmin/shared/file.tmp fi done < /sysadmin/shared/file.tmp
  • Das ist das komplette while-Schleife, die ich verwende, hoffe, dass hilft ein bisschen zu klären.
InformationsquelleAutor cycloxr | 2013-03-25
Schreibe einen Kommentar