Re: OT: sed - regex Problem

2003-11-14 Diskussionsfäden Michelle Konzack
Am 2003-11-13 13:41:09, schrieb Lars Weissflog:
>Hallo liebe Leute,

>Ich würde machen:
>
>sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu
>
>Und das gibt:
>
>sed: -e expression #1, char 12: Unknown option to `s'
>
>Ich würde mal tippen char 12 ist der / vor michel, aber warum versteht
>er den ersten \/ offenbar richtig (escaped slash) und den zweiten nicht?
>Was mache ich da falsch? Wäre toll wenn mir jemand einen Tip geben
>könnte, ich blicks nicht.

sed "s/\/home\/michel\/thesis/./g" testfile.tex > testfile.tex.neu

sollte eigentlich ausreichen...

>Gruß
>Lars

Grüße
Michelle

-- 
Registered Linux-User #280138 with the Linux Counter, http://counter.li.org.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Frank Küster
Lars Weissflog <[EMAIL PROTECTED]> schrieb:

> Hallo liebe Leute,
>
> sorry wenn das etwas OT ist, aber ich werde einfach nicht schlau aus sed
> und der regex, die ich brauche um mein Problem zu lösen. Obwohl
> eigentlich ganz billig:
>
> Ich habe ein umfangreiches tex-Dokument, ursprünglich unter einem
> anderen Benutzernamen erstellt. Das Dok besteht aus diversen .tex
> Dateien. Darin werden Bilder eingebunden, die ursprünglich mit
> vollständigem Pfad referenziert wurden, also z.B.:
>
> \input{/home/michel/thesis/pics/graphs/sigma_t}
>
> Nun möchte ich, da es den user michel nicht mehr gibt, das Dok gern in
> jedem beliebigen Verzeichnis compilieren lassen können. Dazu muss ich
> dann /home/michel/thesis durch . ersetzen (oder liege ich damit
> grundlegend falsch?). Damit könnte ich dann den Inhalt des
> Top-Level-Directory "thesis" irgendwo hin packen, mit allen
> Unterverzeichnissen, also z.B.
> /tmp/compile_michels_thesis/
>
> Darunter gäbe es dann pics/graphs/sigma_t und die zugehörige
> \input-Anweisung wäre einfach
>
> \input{./pics/graphs/sigma_t}

Wie du mit sed zurecht kommst haben ja schon genug erklärt. Aber du
könntest dir überlegen, ob du nicht den ganzen Pfadanteil wegnimmst und
nur den Dateinamen behälst. Wenn du dann TEXINPUTS korrekt setzt (oder
gar die Bilderverzeichnisse in $TEXMF aufnimmst) findet LaTeX sie
trotzdem. Und du kannst später nochmal umorganisieren, ohne die Dateien
zu verändern. Google.groups findet dazu in de.comp.text.tex einiges. 

Gruß, Frank

-- 
Frank Küster, Biozentrum der Univ. Basel
Abt. Biophysikalische Chemie


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Lars Weissflog
On Thu, 2003-11-13 at 13:52, Sven 'Rae the Git' Grounsell wrote:
> muss der ausdruck "\(\/home\/michel\/thesis\)" nicht in backtics (')?
> kann sein, dass ich voellig falsch liege, da ich nicht allzu fit mit regexps
> bin, aber irgendwas is mir da...
> 
Hi Sven,

nee, backticks auf keinen Fall, die interpretiert die bash als enclosed
command (oder so), verwendet um das Ergebnis eines Kommandos im Aufruf
eines anderen einzubauen. Aber normale ticks (Apostroph) sind das was
mir gefehlt hat. 
Danke allen anderen ;-) Manchmal ist es s einfach ;-)
Na denn, auf die Thesen mit Gebrüll. Gähn.

Danke
Lars

> gruss
> Sven
> 
> -- 
> http://www.tuxhilfe.de.vu/
> sven at schnuffs punkt de
> sgrounsell at sectoor punkt de
-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Torsten Schneider
On Thu, Nov 13, 2003 at 01:41:09PM +0100, Lars Weissflog wrote:

> 
> Das mit der Schleife soll das Problem nicht sein, aber sed will schon
> nicht.
> Ich würde machen:
> 
> sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu

Viel einfacher:

sed 's,/home/michel/thesis,.,g' testfile.tex > testfile.tex.neu


Grüße, Torsten


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Andreas Metzler
Lars Weissflog <[EMAIL PROTECTED]> wrote:
[...]
> Das mit der Schleife soll das Problem nicht sein, aber sed will schon
> nicht.
> Ich würde machen:

> sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu

> Und das gibt:

> sed: -e expression #1, char 12: Unknown option to `s'
[...]

Dir fehlen '', sonst schnappt sich die Shell die ganzen Backslashes,
dh. sed -e 's/\(\/home\/michel\/thesis\)/./g'

BTW Leaning toothpick syndrom? \/\/\/?

sed -e 'sÄ/home/michel/thesis/Ä./Äg'
 cu andreas
-- 
Hey, da ist ein Ballonautomat auf der Toilette!
Unofficial _Debian-packages_ of latest unstable _tin_
http://www.logic.univie.ac.at/~ametzler/debian/tin-snapshot/


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Christoph Maurer
* Am Don, 13 Nov 2003 schrieb Lars Weissflog:
> Ich würde machen:
> 
> sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu
> 
> Und das gibt:
> 
> sed: -e expression #1, char 12: Unknown option to `s'
> 
> Ich würde mal tippen char 12 ist der / vor michel, aber warum versteht
> er den ersten \/ offenbar richtig (escaped slash) und den zweiten nicht?
> Was mache ich da falsch? Wäre toll wenn mir jemand einen Tip geben
> könnte, ich blicks nicht.

sed -e "s#/home/michel/thesis/##g" < testfile.tex > testfile.tex.neu

sed akzeptiert auch andere Trenner als /

Gruß

Christoph 

-- 
Christoph Maurer 
christoph-maurer at gmx.de - Tux# 194235


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Philipp Meier
On Thu, Nov 13, 2003 at 01:41:09PM +0100, Lars Weissflog wrote:
> Das mit der Schleife soll das Problem nicht sein, aber sed will schon
> nicht.
> Ich würde machen:
> 
> sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu
> 
> Und das gibt:
> 
> sed: -e expression #1, char 12: Unknown option to `s'

Die \ frißt deine shell, mach '' drumrum:

sed 's/\(\/home\/michel\/thesis\)/./g' testfile.tex > testfile.tex.neu

Ansonsten würde ich für die "Massenänderung" perl empfehlen:

find . -name '*.tex' -print0 | xargs -0 perl -i.bak -pe 's#/home/michel/thesis#.#g'

Die Klammern konnte man übrigends weglassen.

-billy.

-- 
Meisterbohne   Meisterbohne GbR, Küfner, Mekle, Meier   Tel: +49-731-399 499-0
   eLösungen   Söflinger Straße 100 Fax: +49-731-399 499-9
   89077 Ulm   http://www.meisterbohne.de/


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Florian Ernst
On Thu, Nov 13, 2003 at 01:41:09PM +0100, Lars Weissflog wrote:
[...]
sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu
[...]
[EMAIL PROTECTED]:~$ cat alt
(/home/michael/thesis/irgendwas)
[EMAIL PROTECTED]:~$ sed -e 's|/home/michael/thesis|.|g' alt
(./irgendwas)
HTH,
Flo


pgp0.pgp
Description: PGP signature


Re: OT: sed - regex Problem

2003-11-13 Diskussionsfäden Sven 'Rae the Git' Grounsell
On Thu, 13 Nov 2003 13:41:09 +0100
Lars Weissflog <[EMAIL PROTECTED]> wrote:

> sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu
> 
> Und das gibt:
> 
> sed: -e expression #1, char 12: Unknown option to `s'
> 
> Ich würde mal tippen char 12 ist der / vor michel, aber warum versteht
> er den ersten \/ offenbar richtig (escaped slash) und den zweiten nicht?
> Was mache ich da falsch? Wäre toll wenn mir jemand einen Tip geben
> könnte, ich blicks nicht.

muss der ausdruck "\(\/home\/michel\/thesis\)" nicht in backtics (')?
kann sein, dass ich voellig falsch liege, da ich nicht allzu fit mit regexps
bin, aber irgendwas is mir da...

gruss
Sven

-- 
http://www.tuxhilfe.de.vu/
sven at schnuffs punkt de
sgrounsell at sectoor punkt de


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



OT: sed - regex Problem

2003-11-13 Diskussionsfäden Lars Weissflog
Hallo liebe Leute,

sorry wenn das etwas OT ist, aber ich werde einfach nicht schlau aus sed
und der regex, die ich brauche um mein Problem zu lösen. Obwohl
eigentlich ganz billig:

Ich habe ein umfangreiches tex-Dokument, ursprünglich unter einem
anderen Benutzernamen erstellt. Das Dok besteht aus diversen .tex
Dateien. Darin werden Bilder eingebunden, die ursprünglich mit
vollständigem Pfad referenziert wurden, also z.B.:

\input{/home/michel/thesis/pics/graphs/sigma_t}

Nun möchte ich, da es den user michel nicht mehr gibt, das Dok gern in
jedem beliebigen Verzeichnis compilieren lassen können. Dazu muss ich
dann /home/michel/thesis durch . ersetzen (oder liege ich damit
grundlegend falsch?). Damit könnte ich dann den Inhalt des
Top-Level-Directory "thesis" irgendwo hin packen, mit allen
Unterverzeichnissen, also z.B.
/tmp/compile_michels_thesis/

Darunter gäbe es dann pics/graphs/sigma_t und die zugehörige
\input-Anweisung wäre einfach

\input{./pics/graphs/sigma_t}

Alternativ kann ich das ./ vor pics wohl auch weglassen, latex macht das
so oder so.

Nun, da man ja faul ist (und mir dämmert, dass ich noch eine ganze menge
anderer alter Thesis-Tex-Doks modifizieren muss) möchte ich nicht jedes
File händisch im emacs hacken, sondern mit sed und einer for t in *.tex;
do Schleife.

Das mit der Schleife soll das Problem nicht sein, aber sed will schon
nicht.
Ich würde machen:

sed s/\(\/home\/michel\/thesis\)/./g testfile.tex > testfile.tex.neu

Und das gibt:

sed: -e expression #1, char 12: Unknown option to `s'

Ich würde mal tippen char 12 ist der / vor michel, aber warum versteht
er den ersten \/ offenbar richtig (escaped slash) und den zweiten nicht?
Was mache ich da falsch? Wäre toll wenn mir jemand einen Tip geben
könnte, ich blicks nicht.

Gruß
Lars


-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)