Batch Datei um .txt-Datei zu bearbeiten

MrJakie

Grünschnabel
Hallo, ich brauch mal eure Hilfe!


Ich kenne mich leider in dem Metier überhaupt nicht aus, habe aber folgendes Problem:


Ich möchte eine Textdatei (log-file) mit 10.000 Zeilen bearbeiten

Alle zeilen, die das wort disabled enthalten sollen gelöscht werden, bzw. alle Zeilen, die das Wort enabled enthalten sollen erhalten bleiben.


Ich könnte mir vorstellen, daß das sehr einfach zu realisieren sein wird, aber leider habe ich selber vom coden NULL Ahnung.

Also es muß ja nicht unbedingt ne batch datei sein......hauptsache ich krieg das irgendwie hin!

Evtl gibts ja schon ein Proggie was das kann?!? Eigentlich isses ja nicht viel anders als Strg+h im Wordpad....


Danke für jederart Hinweis oder Hilfe!


MfG :p MrJakie :p
 
Hallo,

das folgende Perl-Skript sollte dein Problem lösen.

Code:
open(FILE1, "<datei_vorher.txt");
my $inhalt;
while(<FILE1>)
{
  if (/enabled/)
  {
    $inhalt = $inhalt.$_
  }
}

close(FILE1);

open(FILE2, ">datei_nachher.txt");
print FILE2 $inhalt;
close(FILE2);

Gruß Frank
 
Hey, vielen Dank dafür!

hab das Problem allerdings inzwischen schon anders hinbekommen!

Aber nichts desto trotz vielen Dank für Deine Mühen!!!


MfG :p MrJakie :p
 
das Script prima @ Frankdfe

könntest du es mir soweit erweitern das auch noch gleich eine 2. Datei durchsucht wird und das Ergebniss aus beiden Dateien in einer steht?
 
Zuletzt bearbeitet:
Hallo Terry!

Mit etwas Perl-Kenntnissen könntest du das auch selbst hinbekommen.

Code:
open(FILE1A, "<datei_vorher1.txt");
my $inhalt;
while(<FILE1A> )
{
  if (/enabled/)
  {
    $inhalt = $inhalt.$_
  }
}
close(FILE1A);

open(FILE1B, "<datei_vorher2.txt");
while(<FILE1B> )
{
  if (/enabled/)
  {
    $inhalt = $inhalt.$_
  }
}
close(FILE1B);

open(FILE2, ">datei_nachher.txt");
print FILE2 $inhalt;
close(FILE2);

Gruß Frank
 
Dank dir erstmal für deine "Mühe"

Klar, wenn ich etwas Plan von hätte würde ich das auch hinbekommen, nur stecke ich noch in den Kinderschuhen mit Perl und von daher sind solche Lösungen auch Interessant und Nützlich um den Sinn erstmal näher zu verstehen.

Mit kleinen Dingen fängt man(n) an um sich dann zu Steigern.



Terry
 
Zuletzt bearbeitet:
Hallo erstmal,

es geht noch viel einfacher mit dem find Kommando. (Windows 2000 & XP)

find /v "disabled" Datei.xyz > NeuDatei.xyz

Die Option v zeigt alle Zeilen an in denen der Suchbegriff nicht vorkommt.

Und noch etwas kürzer und logischer (finde das nachdem gesucht wird):

find "enabled" Datei.xyz > NeuDatei.xyz


@Terry
find "enabled" ErsteDatei.xyz > NeuDatei.xyz
find "enabled" ZweuteDatei.xyz >> NeuDatei.xyz

(>) in eine Datei umleiten, (>>) an eine Datei anhängen oder neu erzeugen

Hinweis:
Durch die Umleitung (>) in Die Datei NeuDatei.xyz wird deren Inhalt, falls sie vorhanden ist, geleert !
Sämtlicher Inhalt wird gelöscht (auf 0 Bytes gekürzt !), auch wenn der Suchbegriff nicht gefunden wurde.
Ansonsten wird die Datei neu angelegt.

Ausserdem sollte man als Zieldatei auf gar keinen Fall die Quelldatei verwenden,
da man sich sonst den Ast auf dem man sitzt wegsägt ;-)


Bis dann

The Duke
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück