[unix-ws] piping mit sed

Sebastian Hagedorn Hagedorn at spinfo.uni-koeln.de
Die Nov 18 10:38:03 CET 2003


Hallo Jan,

--On Dienstag, 18. November 2003 8:10 Uhr +0100 Jan Eden 
<lists at jan-eden.de> wrote:

> ich habe ein Problem mit folgender Aufgabe: Ich rufe ein Skript mit zwei
> Argumenten von der Kommandozeile auf, die Argumente (Dateinamen) werden
> verwendet.
>
> Am Schluss soll eine modifizierte Version des zweiten Arguments (z.B.
> scheine2.tex") an die Shell gegeben werden. Mein Versuch:
>
> echo "$2" | sed "s/\(.+\)\.tex/open '\1\.pdf'/" | sh -v
>
> Dabei wird allerdings nur der Wert von $2 ausgegeben, sed scheint nichts
> zu tun und die shell gibt einen Fehler aus:
>
> [...]
>### ps2pdf13 /tmp/altpdflatex.1040-1069139327/scheine2.ps
>### /tmp/altpdflatex.1040-1069139327/scheine2.pdf Copying/moving pdf file
>### /tmp/altpdflatex.1040-1069139327/scheine2.pdf to scheine2.pdf
>### Succesfully generated scheine2.dvi and scheine2.pdf
> scheine2.tex
> sh: line 1: scheine2.tex: command not found
>
> Das ist verständlich, wenn sh "scheine2.tex" bekommt, aber sed sollte
> daraus eigentlich "open scheine2.tex" machen.
>
> Warum klappt das nicht?

weil sed nur Basic Regular Expressions kann, d.h. nicht alle, die Perl kann.

So klappt es bei mir:

echo "$2" | sed "s/\(.*\)\.tex/open '\1\.pdf'/" | sh -v

> Für Tipps dankbar,
>
> Jan Eden
> --
> Jan Bruners -> Jan Eden

Ich fürchte es dauert noch etwas, bis ich mich daran gewöhnt habe ... ;-)

Gruß, Sebastian
--
Sebastian Hagedorn		PGP key ID: 0x4D105B45
Ehrenfeldgürtel 156
50823 Köln
http://www.spinfo.uni-koeln.de/~hgd/
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 201 bytes
Beschreibung: nicht verfügbar
URL         : https://lists.uni-koeln.de/mailman/private/unix-ws/attachments/20031118/c2b35f59/attachment.bin