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: