Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Bestimmte Inhalte einer Textzeile in .txt löschen

Frage Entwicklung Batch & Shell

Mitglied: Flohooo

Flohooo (Level 1) - Jetzt verbinden

15.09.2009 um 14:18 Uhr, 5145 Aufrufe, 8 Kommentare

Einen wunderschönen wünsche ich ...

Ich hab ein Problem was es zu lösen gilt und trotz der hier schon so zahlreich vorhandenen Lösungen für so viele verschiedenen Dinge ist leider noch nichts dabei gewesen was mir wirklich weiterhelfen würde... *lufthol*

Und zwar geht es darum das ich einige .txt Dateien bekomme die wie folgt aufgebaut sind:

ABCD5 Efgh ijk {12a345678910111213} AB_CDEF (Z) . GHIJ KLMN. Xyz: 12-34567-8, IWD: 01 020304 0506070809

die komplette Datei ist untereinander mit solchen Textzeilen voll.
Um damit weiterarbeiten zu können ist es erforderlich dass das
"Xyz:" in einer Ausgabedatei am Anfang der Zeile steht.

Alles was davor steht, soll gelöscht werden.
Da es sich um ein paar Dateien mehr handelt wäre eine Batch, die das ganze automatisch für mich macht natürlich hilfreich, wenns denn möglich ist!

Praktisch wäre es natürlich wenn ich die Dateien aus einem Ordner in einem Rutsch aufgreifen
und in einem anderen Ordner als Ausgabedatei wieder abgespeichert bekäm.

Also, ich weiß nicht wie schwer das wird, ich hab es nicht geschafft, nun seid ihr dran = D

Hoffentlich ....


Gruß

Flo
Mitglied: 60730
15.09.2009 um 14:30 Uhr
Servus,

das ist einfach, mit einer For Schleife den Text durchsuchen, als Delims Xyz: , alles (variable einz nicht, nur Variable 2 in eine neue Datei) und das wars.

Gruß

For /?
Bitte warten ..
Mitglied: Flohooo
15.09.2009 um 15:17 Uhr
danke erstmal,

aber wie soll das ganze denn bitte aussehen?
oder sollte ich vorweg sagen das ich im moment gar keine Ahnung habe? =D
Bitte warten ..
Mitglied: Biber
15.09.2009 um 15:47 Uhr
Moin Flohooo,

willkommen im Forum.

Versuch als Skizze dieses:
01.
:----- snipp flohooo.cmd --- 
02.
@echo off & setlocal 
03.
FOR /F "Delims=" %%i in (e:\schnipsel\Flohooo.txt) do Set "line=%%i" && call:Processline 
04.
goto :eof 
05.
 
06.
:Processline 
07.
Set "tmpline=%line:xyz:=§%" 
08.
FOR /F "tokens=2* delims=§" %%i in ("%tmpline%") do echo xyz:%%i 
09.
goto :eof 
10.
:----- snapp flohooo.cmd ---
...wobei Du das "e:\schnipsel\Flohooo.txt" durch Deine Dateiangaben ersetzen musst
.. ggf. das "§"-Zeichen, das ich als Delimiter verwende (weil es in normalen Texten eher selten vorkommt) variieren musst.

Die jetzige Bildschirmausgabe des flohooo.cmd kannst du mit ">x:\yz\neueDatei.txt" in eine neue Datei umleiten.

Grüße
Biber
Bitte warten ..
Mitglied: da-chiller
15.09.2009 um 15:59 Uhr
Am einfachsten kann man Dateinamen gesammelt in der Console umbenennen.

In die Kommandozeile (Eingabeaufforderung) wechseln (je nach Betriebssystem anders zb Start->Ausführen: "cmd"), in den entsprechenden Ordner mit den .txt-Dateien wechseln und folgenden Befehl eingeben:

01.
copy *Xyz:*.txt c:\Zielverzeichnis\Xyz*.txt
Wichtig sind natürlich die Sternchen, sie gelten als Platzhalter für alles was - in diesem Fall - vor und hinter dem "Xyz:" steht. Du musst allerdings auch darauf achten, dass die Zeichenfolge Xyz: sonst nirgends in dem Dateinamen auftaucht, sonst gibts Verwirrungen!!!

Das sollte funktionieren. Allerdings hab ich das jetzt nicht großartig getestet. Am besten vorher mal mit einer Sicherungskopie deiner txts ausprobieren...
Bitte warten ..
Mitglied: bastla
15.09.2009 um 18:18 Uhr
... bzw etwas schlanker :
01.
:----- snipp flohooo.cmd --- 
02.
@echo off & setlocal 
03.
FOR /F "Delims=" %%i in (e:\schnipsel\Flohooo.txt) do Set "line=%%i" && call:Processline 
04.
goto :eof 
05.
 
06.
:Processline 
07.
echo xyz:%line:*xyz:=% 
08.
goto :eof 
09.
:----- snapp flohooo.cmd ---
@Biber
Eigentlich hätte ich als (Deine) Zeile 8 erwartet:
FOR /F "tokens=1* delims=§" %%i in ("%tmpline%") do echo xyz:%%j
was aber auch schon egal wäre, wenn "xyz:" mehrfach vorkäme ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.09.2009 um 18:46 Uhr
Moin bastla,

Eigentlich hätte ich als (Deine) Zeile 8 erwartet:..
Hast natürlich Recht.... ich hatte es nur als (eine etwas längere) Zeile flüchtig am CMD-Prompt zusammengeschrotet als proof-of-concept und mich dann bei der Nacherzählung als Mini-Batch so darauf konzentrieren müssen, dass ich auch jedes der vielen %-Zeichen verdoppele.... da hab ich wohl ein bisschen an der Ästhetik eingespart...

Außerdem... ich denke, es freut Dich ja auch, anderen etwas über Verschlankungen weitergeben zu können

Grüße
Biber
Bitte warten ..
Mitglied: bastla
15.09.2009 um 18:53 Uhr
[OT]
@Biber
Außerdem... ich denke, es freut Dich ja auch, anderen etwas über Verschlankungen weitergeben zu können
Anderen schon ...
[/OT]

Grüße
bastla
Bitte warten ..
Mitglied: Flohooo
16.09.2009 um 08:51 Uhr
Guten morgen,

vielen vielen Dank ersteinmal.

Biber, dein Vorschlag hat direkt funktioniert, bekomme in der cmd direkt mein gewünschtes Ergebnis geliefert.

Allerdings gibt es komischerweise Probleme mit der Ausgabe.
Wollte das Ergebnis ja in einer weiteren .txt gespeichert haben, aber egal was ich versuche ... es funktioniert nicht = (


Edit:

mit > c:\xy\z
bekomme ich immer nur die letzte ausgewertete Zeile der cmd in die neue .txt geschrieben.
Aber ich will ja alle drin stehen haben ^^


Edit2:

Ahhhh ich habs schon, der >> machts ;) = D

Dankeee!!!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Outlook & Mail
gelöst Bestimmte Anhänge bei E-mails mit Exchange 2010 löschen (5)

Frage von jojo0411 zum Thema Outlook & Mail ...

Microsoft Office
gelöst Excel VBA - Inhalte und Dateiname von txt-Dateien automatisch in Excel importieren (2)

Frage von Booster07 zum Thema Microsoft Office ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (16)

Frage von Angela44 zum Thema DSL, VDSL ...

Windows Server
SBS 2011 Standard virtualisieren (12)

Frage von HeinrichM zum Thema Windows Server ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Backup
Datensicherung ARCHIV (11)

Frage von fautec56 zum Thema Backup ...