Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

Geschrieben

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

Geschrieben

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...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...