[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sed: -e expression #1, char 18: unterminated `s' command [OT]



Moin,

Klaus Becker schrieb am 18. Feb um 10:31 Uhr:
> Le 17/02/2021 à 21:23, Christian Knoke a écrit :
> > Klaus Becker schrieb am 17. Feb um 18:56 Uhr:
> > > n'Abend,
> > > 
> > > in einem Skript habe ich dutzende Zeilen wie
> > > 
> > > "sed -i '/Anzeige/Id' druck.txt"
> > > 
> > > um aus Texten bestimmte Zeilen zu löschen. Nun bekomme ich obige
> > > Fehlermeldung.
> > 
> > sed verwendet den ersten Parameter auf der Kommandozeile, der keine Option
> > ist, als Script, hier ist das: '/Anzeige/Id' .  Die Fehlermeldung bemängelt
> > ein s Kommando, also enthält das Script wohl ein s Kommando, das ist ein
> > Ausdruck, der mit einem kleinen s beginnt (für search and replace).
> > 
> > Das bedeutet, du verwendest das sed Programm falsch. Einerseits gibt es
> > Optionen (mit - am Anfang), andererseits Script-Kommandos.

> ein klein wenig kenne ich sed schon. Ich erkläre mal den Hintergrund:
> 
> ich kopiere oft Webseiten in die Datei "druck.txt", behandle sie mit meinem
> Skript und kopiere dann das Ergebnis in Libreoffice zum drucken.
> 
> Da habe ich in "druck.odt" nur Text und keine Textabschnitte, die immer
> wiederkommen und die ich nicht drucken will wie z. B. Werbung. Das mache ich
> schon seit Jahren, und es funktionniert.

Gute Sache.

> Ich glaube also nicht, dass ich sed falsch benutze.

Nein, sieht nicht so aus. Dennoch..

> Manchmal komme neue Motive zum Skript dazu, und es kommt schon mal vor, dass
> ich Fehler begehe. Meist finde ich die ziemlich schnell.
> 
> Ich habe auch im Skript "-s" gesucht, wird aber nicht gefunden.

Die Fehlermeldung (hier im Betreff) bemängelt ein "s"-Kommando, keine
"-s"-Option. Es gibt also einen Ausdruck in der Aufrufzeile von sed in
deinem Script, der von sed als sed-Script interpretiert wird und der mit dem
kleinen Buchstaben "s" beginnt (oder einen Variablen, die den Wert "s"
annimmt, oder, oder, oder ...)

  chris@leo:~$ sed 
  Aufruf: sed [OPTION] ¿ {Skript-falls-kein-anderes-Skript} [Eingabedatei] ¿

Empfehlung: alle sed-Scripte mit -e einleiten, dann fallen Fehler besser auf.

Und zum Schluss: vielleicht ein Quoting-Problem? --> man bash --> QUOTING .

Gruß
Christian

-- 
http://cknoke.de


Reply to: