Top-Themen

Aktuelle Themen (A bis Z)

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 Batch - Suchen und Ersetzen der letzten 2 Zeichen in einer txt Datei

Mitglied: koefinger

koefinger (Level 1) - Jetzt verbinden

25.07.2011 um 21:30 Uhr, 7908 Aufrufe, 9 Kommentare

Hallo, ich bin neu hier und würde mich freuen wenn mir jemanden weiterhelfen kann.

Ich habe eine riesige (paar 100000 Zeilen) txt-Datei (TEST.txt), mit folgendem Inhalt:

E4Q 91201 80730 80732 80299 80297 61
E4Q 91202 80731 80298 80733 80734 61
E3T 91203 80301 80733 80298 61
E4Q 91204 80735 80302 80299 80732 61
E4Q 91205 80733 80301 80322 80736 71
E4Q 91206 80737 80303 80302 80735 61
E4Q 91207 80738 80726 80303 80737 61
E4Q 91208 80307 80306 80309 80739 91
E4Q 91209 80307 80739 80725 80318 91

Ist es mittels batch möglich jeweils die letzten beiden Zeichen auszulesen und danach zu ersetzen und zwar mit der bedingung dass z.B.
61 soll 2 werden
71 soll 69 werden
91 soll 45 werden

d.h. das ergebnis sollte folgendermaßen aussehen:
E4Q 91201 80730 80732 80299 80297 2
E4Q 91202 80731 80298 80733 80734 2
E3T 91203 80301 80733 80298 2
E4Q 91204 80735 80302 80299 80732 2
E4Q 91205 80733 80301 80322 80736 69
E4Q 91206 80737 80303 80302 80735 2
E4Q 91207 80738 80726 80303 80737 2
E4Q 91208 80307 80306 80309 80739 45
E4Q 91209 80307 80739 80725 80318 45

Danach soll die Datei überspeichert werden.

Ich tüfftle schon geraume Zeit herum und habe versucht aus den vorhandenen Suchen und Ersetzen Foreneinträgen schlau zu werden,
bisher leider ohne Erfolg.

LG Stefan.
Mitglied: 64748
25.07.2011 um 21:47 Uhr
Guten Abend Stefan,

mit Batch kann ich in diesem Fall nicht helfen. Aber im Editor vim (gibt's auch für Windows ftp://ftp.vim.org/pub/vim/pc/gvim73_46.exe) kannst Du mit den drei Kommandos
:%s/61$/2/
:%s/71$/69/
:%s/91$/45/
Diese Befehle werden im Command-mode ausgeführt.

Markus
Bitte warten ..
Mitglied: Addl123
25.07.2011 um 22:11 Uhr
Spontanwürde ich Notepad++ benutzen. Um es ganz einfach zu machen: Mit Macro Aufnehmen, und dann mehrmals abspielen (backspace,backspace,forward,down,back, und dann beliebig oft abspielen).
Bitte warten ..
Mitglied: 64748
25.07.2011 um 22:16 Uhr
Zitat von Addl123:
Spontanwürde ich Notepad++ benutzen. Um es ganz einfach zu machen: Mit Macro Aufnehmen, und dann mehrmals abspielen
(backspace,backspace,forward,down,back, und dann beliebig oft abspielen).
Naja, Du musst schon gezielt nach dem Vorkommen der Zahlen am Ende der Zeile suchen, also musst Du im Macro die Suchfunktion mit aufnehmen, dann kannst Du aber auch gleich Suchen/Ersetzen benutzen, so wie ich's oben beschrieben habe.

Markus
Bitte warten ..
Mitglied: Lochkartenstanzer
25.07.2011 um 22:33 Uhr
Zitat von koefinger:

Mit cygwin geht das:

61 soll 2 werden
sed -e "s/61$/2/g" -i TEST.txt
71 soll 69 werden
sed -e "s/71$/69/g" -i TEST.txt
91 soll 45 werden
sed -e "s/91$/45/g" -i TEST.txt
Bitte warten ..
Mitglied: Addl123
25.07.2011 um 22:38 Uhr
Zitat von 64748:
> Zitat von Addl123:
> ----
> Spontanwürde ich Notepad++ benutzen. Um es ganz einfach zu machen: Mit Macro Aufnehmen, und dann mehrmals abspielen
> (backspace,backspace,forward,down,back, und dann beliebig oft abspielen).
Naja, Du musst schon gezielt nach dem Vorkommen der Zahlen am Ende der Zeile suchen, also musst Du im Macro die Suchfunktion
mit aufnehmen, dann kannst Du aber auch gleich Suchen/Ersetzen benutzen, so wie ich's oben beschrieben habe.

Markus




Ich hab zu schnell geantwortet, ich hab gedacht er will die letzten zwei Zeichen löschen (ich hab mir nur schnell das Ergebnis angeschaut). Wobei das was er will ja nicht schwer ist, da es ja immer Leerzeichen ## Absatz ist. Geht ja auch mit extenden / regular expressions (in N++) (z.B. mit RegEx suchen " 91§" und ersetzen " 45$".
Bitte warten ..
Mitglied: bastla
25.07.2011 um 22:41 Uhr
Hallo koefinger und willkommen im Forum!

Soferne es keine zwingenden Gründe für die Verwendung von Batch gibt, würde ich eher ein VBScript verwenden, etwa:
01.
Datei = "D:\TEST.txt" 
02.
Von =  Array("61", "71", "91") 
03.
Nach = Array("2",  "69", "45") 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
T = fso.OpenTextFile(Datei).ReadAll 
07.
 
08.
For i = 0 To UBound(Von) 
09.
    T = Replace(T, " " & Von(i) & vbCrLf, " " & Nach(i) & vbCrLf) 
10.
Next 
11.
 
12.
fso.CreateTextFile(Datei).Write T
Vorausgesetzt habe ich Windows-Zeilenumbrüche (CR + LF) und dass auch die letzte Zeile mit einem Umbruch endet, sowie dass vor jedem Suchbegriff ein Leerzeichen steht.

Die "Von"- und "Nach"-Listen müssen gleich viele Einträge haben, sind aber ansonsten beliebig erweiterbar, wobei natürlich zu beachten ist, dass auch mehrfach ersetzt würde - käme also etwa noch von "69" nach "23" hinzu, würden alle Zeilen, welche ursprünglich "69" enthalten haben, aber auch alle, welche von "71" auf "69" geändert wurden, den Wert "23" erhalten - daher ggf die Reihenfolge anpassen!

Achtung: Es wird, wie gewünscht, die Datei (ohne Sicherungskopie) ersetzt.

Grüße
bastla
Bitte warten ..
Mitglied: 64748
25.07.2011 um 22:45 Uhr
Hallo Lochkartenstanzer,

ich glaube das g (alle Vorkommen in der Zeile) kann man in dem Fall weglassen da ja gezielt nach dem Vorkommen am Zeilenende gesucht wird.

Markus
Bitte warten ..
Mitglied: koefinger
25.07.2011 um 23:08 Uhr
Spitze, herzlichen Dank an alle für die rasche Hilfe.

Hab' jetzt die Lösung von Bastla vorgezogen, da ich mit VB noch am ehesten zurechtkomme.

Funktioniert übrigens spitze... genauso wie ich es wollte.

1000Dank
Bitte warten ..
Mitglied: Lochkartenstanzer
26.07.2011 um 07:21 Uhr
Nun ja, das g komtm bei mir aus Gewohnheit immer mit dazu. Es würde natürlich auch ohne gehen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch um Zeichen aus erster und letzter Zeile einer TXT Datei zu löschen

Frage von Bobby0712Batch & Shell2 Kommentare

Hallo. Wie der Titel schon sagt suche ich eine möglichkeit wie ich aus einer TXT Datei aus der ersten ...

Batch & Shell

Letzte Zeile einer .txt in eine andere .txt ausschneiden per Batch

gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo zusammen, zu meinem obrigen Thema habe ich leider nur in Richtung löschen und nicht in Richtung ausschneiden etwas ...

Batch & Shell

Tilde Zeichen per Batch ersetzen

gelöst Frage von Blackhawk386Batch & Shell6 Kommentare

Hi! Ich habe eine Datei in Textform, in der Umlaute per Batch umgewandelt werden müssen. Dazu habe ich hier ...

Entwicklung

Suchen und ersetzen als Batch oder VBA

gelöst Frage von ZinedineEntwicklung22 Kommentare

Hallo, bin hier neu im Forum und ein absoluter Laie was Programmierung betrifft Habe deswegen auch ein großes für ...

Neue Wissensbeiträge
E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 2 TagenE-Mail10 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 2 TagenHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 2 TagenSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 2 TagenServer-Hardware4 Kommentare

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Heiß diskutierte Inhalte
Tipps & Tricks
Nagstamon und PRTG Monitoring
Frage von Der.ITlerTipps & Tricks13 Kommentare

Hallo Ihr, heute am Sonntag bin ich mal früh aufgestanden um mich mit dem Problem von Gestern zu beschäftigen. ...

Batch & Shell
Bestimmte Textpassagen via bat löschen
gelöst Frage von Grisu84Batch & Shell10 Kommentare

Hallo, ich habe eine txt-Datei, in welcher ich durch eine bat bestimmte Zeilen löschen möchte. So soll die Datei ...

Windows 10
Windows 10 PC stürzt in letzter Zeit mit verschiedenen Fehlermeldungen ab (Bluescreen)
Frage von cyb012Windows 1010 Kommentare

Hallo zusammen, mein Rechner verabschiedet sich in letzter Zeit leider immer öfters. Meine Austattung, falls relevant: Arbeitsspeicher: 16GB G.Skill ...

Verschlüsselung & Zertifikate
Windows 10 - 2 Partitionen mit Bitlocker verschlüsselt - kein Wiederherstellungssschlüssel vorhanden
Frage von JosuanVerschlüsselung & Zertifikate9 Kommentare

Hallo zusammen, nach einem Bios/Firmware/Treiberupdate fragt Bitlocker nun vor dem Windowsstart nach dem Wiederherstellungsschlüssel, dieser wurde damals leider auf ...