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

Re: viele dateien auf einmal modifizieren



Am Die, 15 Okt 2002 schrieb Hans Gerber:
> Rainer Ellinger <rainer@ellinger.de> schrieb am Sat, 12 Oct 2002
> 13:17:00 +0200::
> 
> > Hans Gerber schrieb:
> > > wie kriege ich denn jetzt ..."first"... in  ..."last"... ?
> > [sed für viele Dateien]
> 
> Mein 1. Problem scheint etwas mit den escapes zu tun zu haben.
> 
> ----schnipp---
> #!/bin/bash 
> foo1="DOCUMENT_ROOT_old"
> foo2="DOCUMENT_ROOT_new"
> [...]
> 	 if sed -e 's/'"$foo1"'/'"$foo2"'/g' "$f.bak" >"$f"
> [...]
> 
> So wie oben geht es jetzt, aber sobald ich das '$' Sonderzeichen in foo1
> mit reinnehme ist Ende: foo1=$DOCUMENT_ROOT_old. Dann schnmeisst das
> Skript die Fehlermeldung:
> "sed: -e expression #1, char 5: No previous regular expression".
> Dich es in meinem konkreten Fall nicht benötige, ist es nicht so
> wichtig, aber trotzdem würde mich mal interessieren, wie ich das lösen
> kann.
> 

foo1="\$DOCUMENT_ROOT_old"
$foo1 wird ja später nur durch seinen Inhalt ersetzt => Du hast in
Deinem sed-Ausdruck das $ korrekt maskiert. 

> 2. Problem
> Die betroffenen Dateien index.php sind in bis zu dreifacher Tiefe in
> verschiedenen Unterverzeichnissen. Mit find ./ -name index.php kann ich
> in der shell wunderbar alle Dateien finden, aber wie kriege ich das in
> das obige Skript eingebaut. was ich erreichen möchte ist:
> 
> for all in find ./ -name index.php mache ersetzung

Viele Möglickeiten
z.B. 
for i in `find ./ -name index.php`;do
#Ersetzung
done

Gruß

Christoph 
-- 
Christoph Maurer - http://www.christophmaurer.de
mailto:christoph-maurer@gmx.de - Tux# 194235



Reply to: