Mailinglist Archive: opensuse-de (6022 mails)

< Previous Next >
Re: Brauche Hilfe,Kriegs mit find nicht hin :-(
  • From: Thorsten Haude <linux@xxxxxxxxxxxxxx>
  • Date: Sun, 17 Feb 2002 18:44:28 +0100
  • Message-id: <20020217174428.GI972@xxxxxxxxxxxxx>
Moin,

* Harry Rüter <harry_rueter@xxxxxx> [02-02-17 17:45]:
Thorsten Haude wrote:
* Harry Rüter <harry_rueter@xxxxxx> [02-02-17 17:13]:
Jede Datei mit einer bestimmten Endung (zb html)
soll mit sed "behandelt" werden.
find verzeichnis -name '*.html' -exec sed sedkrams {} \;
Ja, aber der Parameter nach dem -name soll ja variabel
als Kommandozeilenparameter übergeben werden,
deshalb wird er ja beim Aufruf des scripts mit
"*.xyz" gequotet übergeben.

Das ist das erste Problem:
wie bekomme ich *.xyz an die Stelle hinter -name ?
Ach ja, habe ich übersehen.
Tja, dann mußt Du dem Skript eben einen Parameter übergeben:
find verzeichnis -name '$1' -exec sed sedkrams {} \;
Vielleicht auch "$1" oder \'$1\'. Spiel mal ein wenig 'rum, um die
richtige Kombination zu finden.

sed soll eine Textersetzung machen und die Ausgabe auf eine
temporäre Datei umleiten.

Nachdem sed fertig ist, wird die ursprüngliche Datei
gelöscht, die temporäre Datei erhält den Namen der
ursprünglichen Datei.
Ist das wirklich nötig? Kann sed(1) nicht die Datei direkt ändern?
Meines Wissens schreibt sed auf die Standardausgabe,
sonst würde ichs nicht so probieren.
Kann sein. Ich würd's überhaupt mit Perl machen.

Kann ich denn nach dem exec überhaupt mehrere Befehle sequentiell
ausführen ?
Man müßte mehrere -execs hintereinander benutzen können. Die sind aber
normalerweise und-verknüpft.

Wie sieht denn die Ersetzung des gefundenen Dateinamens überhaupt aus ?
Ist das etwa dieses {} ?
Jepp.

Thorsten
--
Wasn't the storming of the Bastille an act
of terrorism? Probably. Now it's a holiday.
- umarsyed

< Previous Next >