Forums Neueste Beiträge
 

Substitutionen "in place"

12/06/2008 - 15:04 von Andreas Stallmann | Report spam
Hi!

Ich suche nach einer trivialen Möglichkeit, per regexp innerhalb einer Datei Strings zu tauschen. Irgendwie steh ich grad auf dem Schlauch.

Ich suche einen Aufruf aus einem Skript heraus, der dem Kommandozeilenaufruf

perl -i -pe 's/alt/neu/g' *

entspricht.

Schon klar, dass es irgendwas in Richtung von...

while (<>) {
$_ =~ 's/alt/neu/g'
...
}

...werden muss. Bislang sammle ich meine modifizierten $_ in einem Array und überschreibe anschließend mit diesem die Orginaldatei. Gibt es auch einen Weg ohne temporàre Datenablage?

Danke für jeglichen Hinweis (auch für ein RTFM, mit Hinweis wo ich das FM finden kann *g*),

Andreas
CONET Solutions GmbH
Andreas Stallmann, Senior Berater
Theodor-Heuss-Allee 19, 53773 Hennef
Tel.: +49 2242-939-0, Fax: +49 2242-939-393
Internet: http://www.conet.de, mailto: astallmann@conet.de
-
The statements and opinions expressed here are my own and
do not necessarily represent those of CONET.
-
CONET Solutions GmbH, Theodor-Heuss-Allee 19, 53773 Hennef
Registergericht/Registration Court: Amtsgericht Siegburg (HRB Nr. 9136)
Geschàftsführer/Managing Directors: Dipl.-Inform. Rüdiger Zeyen (Sprecher/Chairman),
Dipl.-Betriebsw. Wilfried Pütz und Dipl.-Inform. Jürgen Zender
Vorsitzender des Aufsichtsrates/Chairman of the Supervisory Board: Dipl.-Math. Hans-Jürgen Niemeier
 

Lesen sie die antworten

#1 Ulli Horlacher
12/06/2008 - 18:08 | Warnen spam
Andreas Stallmann wrote:

Ich suche einen Aufruf aus einem Skript heraus, der dem Kommandozeilenaufruf

perl -i -pe 's/alt/neu/g' *

entspricht.



system "perl -i -pe 's/alt/neu/g' *"; # :-)


Kein Witz, so mach ich das masnchmal, wenn es schnell gehen soll.



...werden muss. Bislang sammle ich meine modifizierten $_ in einem Array
und überschreibe anschließend mit diesem die Orginaldatei. Gibt es auch
einen Weg ohne temporàre Datenablage?



Wenn du Perl-Variablen und nicht bloss files auch als "temporàre
Datenablage" ansiehst: nein, bzw das geht nur dann, wenn dein
Betriebssystem ein record-oriented file system hat, zB mit VMS. Dann
kannst du "im File" rumeditieren.

Oder eine Datenbank statt eines plain file verwenden.


Ullrich Horlacher Informationssysteme und Serverbetrieb
Rechenzentrum E-Mail:
Universitaet Stuttgart Tel: ++49-711-685-65868
Allmandring 30 Fax: ++49-711-682357
70550 Stuttgart (Germany) WWW: http://www.rus.uni-stuttgart.de/

Ähnliche fragen