Zum Inhalt springen

Perl-Skript -> Zeile löschen


Empfohlene Beiträge

Tag zusammen,

ich hab ca. 100 Dateien aus denen ich genau eine Zeile mit immer demselben Inhalt löschen soll.

Das möchte ich natürlich nicht von Hand machen.

Nachdem ich jetzt schon seit über einem Jahr nix mehr mit Perl gemacht habe, komm ich grad schon ganz schön is grübeln.

Struktur is immer wie folgt:

im Verzeichnis "vhosts" liegen alle Domains als Verzeichnisse:

"domain1.de"

"domain2.de"

usw.

darin gibt es dann wieder einen Ordner der "conf" heißt und da liegt dann immer die Datei "httpd.include"

Zusammen also:

"domain1.de/conf/httpd.include"

In dieser Datei steht immer die eine Zeile:

"SuexecUserGroup <user> <gruppe>"

Wie kann ich jetzt durch die einzelnen Verzeichnisse wechseln, die Datei jeweils öffnen, die Zeile meinetwegen nach dem Suchbegriff "SuexecUserGroup" löschen und dann wieder schließen???

Hat mir einer vielleicht schon ein fertiges, oder ähnliches Skript das die Aktion erledigen würde?!?

Vielen Dank schon mal im Voraus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

vielleicht hilft dir das ein wenig auf die sprünge, hab selber auch schon länger nix mehr gemacht, aber ich glaub, das müsst so ungefähr stimmen.


$Datei = 'e:/ordner/datei.doc';
$Pfad = 'e:/test/';

#so kannst du eine datei öffnen

open (FILE, "<$Datei");
@DateiInhalt = <FILE>;
close(FILE);

#so kannst du ein verzeichnis einlesen

$Verzeichnis = 'e:/test';
opendir(DIR,"$Verzeichnis");
@VerzeichnisInhalt = readdir(DIR);
closedir(DIR);

#und dann könntest du ja z.b. in einer foreach schleife durchgehen

#die hier läuft durch jede zeile meiner datei
foreach $Zeile (@DateiInhalt)
{



#die hier läuft durch meine verzeichnisse
foreach $Verzeichnis (@VerzeichnisInhalt)
{
}
}
[/PHP]

hilft dir das ein wenig? ich hatte damals eine datei, in der bestimmte verzeichnisse standen und ich musste für jede zeile in der datei alle verzeichnisse durchlaufen und nach etwas suchen, das ich dann abändern musste, deshalb die verschachtelung.

mfg korea1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

hmm, perl apache ich nehm mal an das es ein Linux System ist. Da geht das auch einfacher, ohne Perl :D

zuerst musst du in das Verzeichnis wechsel in dem die Domains als Ordner liegen.

Erstmal Backup machen der httpd.include dateien (kommt immer gut):

for i in `ls -1 | sed -e 's/\///'`; do

cp $i/conf/httpd.include /tmp/backup_include_$i;

echo $i done;

done

dann alle Dateien mit grep -v (-v gibt alle zeilen aus die _nicht_ zutreffen) bearbeiten.

In etwa so:

for i in `ls -1 | sed -e 's/\///'`; do

grep -v 'SuexecUserGroup' $i/conf/httpd.include > /tmp/foo;

mv /tmp/foo $i/conf/httpd.include;

echo $i done;

done

Aber vorher BackUp machen!!

HTH Henrik

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo ihr beiden,

hab mich für die untere Lösung von Henrik entschieden.

Hab vorher schön brav ein Backup gemacht ... hat aber direkt reibungslos funktioniert.

Waren übrigens 254 Conf-Dateien. Da würd ich glaub sterben wenn ichs von Hand machen müsste ;-)

Vielen Dank euch...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...