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, 5144 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...