Text entfernen
Rudi
- sonstiges
Hallo,
ich habe Hunderte von Text-Dateien, bei denen ich nach dem ersten Auftreten eines Textes (z.B xyz) alles löschen möchte bis zum Dateiende.
Beispiel:
Aus
dsdfsadd... xyz ....sdgsdgdgdg
....
fdadfdfdf
soll
[codel]dsdfsadd... xyz[/code]
werden.
Wie mache ich das am besten (keine Perl-/PHP- o.ö. Kenntnisse vorhanden)?
Danke für Eure potentielle Hilfe
Rudi
Lieber Rudi,
nach dem ersten Auftreten eines Textes (z.B xyz) alles löschen möchte bis zum Dateiende.
[...]
Wie mache ich das am besten (keine Perl-/PHP- o.ö. Kenntnisse vorhanden)?
Du nimmst einen sinnvollen Texteditor (z.B. Notepad++), öffnest alle Dateien darin und versuchst mit cleverem Suchen&Ersetzen die ensprechenden Textteile zu modifizieren bzw. zu entfernen. Anschließend speicherst Du alle Dateien wieder (mit einem Klick).
War es das, was Du wissen wolltest?
Liebe Grüße,
Felix Riesterer.
Hallo
Du nimmst einen sinnvollen Texteditor (z.B. Notepad++), öffnest alle Dateien darin und versuchst mit cleverem Suchen&Ersetzen die ensprechenden Textteile zu modifizieren bzw. zu entfernen. Anschließend speicherst Du alle Dateien wieder (mit einem Klick).
War es das, was Du wissen wolltest?
Was ich ersetzen (löschen) will muss ich ja suchen, allerdings ist dieser Text ja immer unterschiedlich.
Wie kann ich einen Text suchen, dessen Inhalt ich nicht kenne?
Grüße,
Wie kann ich einen Text suchen, dessen Inhalt ich nicht kenne?
du sagtest die "stopsequenz" sei bestimmt?
wenn es "willkürlich" ist, dann kann dir kein Programm helfen - Entscheidungen müssen immer noch von Menschen getroffen werden, pc kann nur Vorschriften.
MFG
bleicher
Moin!
Wie kann ich einen Text suchen, dessen Inhalt ich nicht kenne?
Verdammt: Kennst Du ihn nicht, gar nicht oder gibt es dafür Regeln?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
Wie mache ich das am besten (keine Perl-/PHP- o.ö. Kenntnisse vorhanden)?
Danke für Eure potentielle Hilfe
Rudi
Hm. Was hast Du? Ich nehme mal an, irgendein Windows.
* Der alte HTML-Editor 5.2 (den gabs noch als Freeware) von Meybohm konnte derlei batch-Aufgaben erledigen.
* Mit einem Shell-Skript drum herum kann auch das für Windows verfügbare Tool sed tun.
* Klar geht das auch mit PHP - in einer Shell.
<?php
##
# splitter.php
##
# Dateien festlegen
# Variante 1: als Array:
$arFiles=array(
'datei1.txt',
...
'datei10.txt'
);
# Variante 2: aus einer Textdatei:
$arFiles=file('Dateinamen.txt');
# Variante 3: alle .txt- Dateien in einem Verzeichnis:
$strDirName="C:/texte";
$DIR = dir($strDirName);
while (false !== ($entry = $DIR->read())) {
if (strpos($entry, '.txt')) {
$arFiles[]=$strDirName.'/'.$entry
}
}
$DIR->close();
#In jedem Fall hast Du jetzt ein Array.
$search="Ab hier löschen:";
foreach ($arFiles as $strFileName) {
if (!is_file($strFileName)) {
print "Fehler: $strFileName ist keine Datei\n";
} elseif (!is_readable($strFileName)) {
print "Fehler: $strFileName ist nicht lesbar. Rechte?\n";
} elseif (!is_writable($strFileName)) {
print "Fehler: $strFileName ist nicht schreibbar. Rechte?\n";
} else {
# Datei einlesen und gleich am String in 2 Teile auftrennen
$arParts=explode($search, file_get_contents($strFileName), 2);
#prüfen, ob es was zu tun gibt:
if isset($arParts[1]) {
# Ersten Teil schreiben:
file_put_contents($arParts[0],$strFileName);
}
}
}
print "Fertig\n".
?>
C:\dir\> php splitter.php
UNGETESTET! Schreibfehler sind möglich. Hilfe zu den Befehlen gibt es bei php.net.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
dsdfsadd... xyz ....sdgsdgdgdg
....
fdadfdfdf
soll
dsdfsadd... xyz
werden.
Das ist anders als Deine vorherige Beschreibung.
$str=file_get_contents($strFileName);
# Du splittest hinten:
$ar=explode('xyz', $str, 2);
#und nimmst den ersten Teil:
$str=ar[0];
# Du splittest vorn:
$ar=explode('dsdfsadd', $str, 2);
#und nimmst, so dieser existiert, den zweiten Teil
if isset($ar[1]) {
$str=$ar[1];
}
#Du schreibst $str zurück
file_put_contents($FileName, $str);
Den Rest nimmst Du aus meinem anderen Vorschlag.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix