SirBarry Geschrieben 8. Januar 2004 Teilen Geschrieben 8. Januar 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
korea1 Geschrieben 9. Januar 2004 Teilen Geschrieben 9. Januar 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
henrikst Geschrieben 9. Januar 2004 Teilen Geschrieben 9. Januar 2004 Hallo, hmm, perl apache ich nehm mal an das es ein Linux System ist. Da geht das auch einfacher, ohne Perl 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SirBarry Geschrieben 9. Januar 2004 Autor Teilen Geschrieben 9. Januar 2004 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.