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

Ein Zeichen in einer SEHR großen TXT Datei ersetzen

Frage Entwicklung Batch & Shell

Mitglied: moebelwachs

moebelwachs (Level 1) - Jetzt verbinden

01.05.2012 um 11:46 Uhr, 5315 Aufrufe, 13 Kommentare

Moin,

folgendes Problem:
In einer recht großen textdatei (150000 Zeilen x 300 Zeichen) muß ein ";" gegen ein "|" ausgetauscht werden. Ich hab schon mehrere Texteditoren probiert, die alle streiken. Excel geht auch nicht, weil hier der Trenner "|" nicht explizit verwendet werden kann.
Meine Frage: Wie kann ich diese Aufgabe per Batch lösen ?
Danke vorab,
schöne grüße Wolfgang
Mitglied: schattenhacker
01.05.2012 um 11:52 Uhr
hi,

da streiken viele Programme, excel hätte ich gar nicht erst probiert.
Ich habe das mal gelöst, indem man die Zeilen in eine Datenbank einliest und die Felder wie der mit "" exportiert.
Ist etwas Arbeit, aber wenn es nicht zu viele Felder sind benötigst Du weniger zeit als mit dem Rumprobieren div. Programme.

gruss jo
Bitte warten ..
Mitglied: schattenhacker
01.05.2012 um 11:56 Uhr
ausserdem: wenn du in einem Feld ein , drin hast dann klappt das eh nicht.
also bei ( soll keine Werbung sein )" "real, " aber nicht bei aldi" bringt deine Felder total durcheinander.
die erwähnte Möglichkeit gibt dir die Chance, gleich die Inhalte aufzuräumen.
Bitte warten ..
Mitglied: 106009
01.05.2012 um 12:14 Uhr
Zitat von moebelwachs:
Ich hab schon mehrere Texteditoren probiert, die alle streiken.

Dann hast du offenbar nicht die richtigen Editoren ausprobiert.
Versuch mal EditPad(-lite).

Gruß
Bitte warten ..
Mitglied: laster
01.05.2012 um 12:15 Uhr
Hallo,

das ist eine Textdatei mit einer Größe von etwa 42 MB?
Hast Du schon mal Ultraedit (Editor) oder "InfoRapid Suchen & Ersetzen" probiert? Letzteres Programm kann das sicher (und dazu in vielen Dateien - wenn es nötig ist).

Gruß
Lars
Bitte warten ..
Mitglied: gemini
01.05.2012 um 12:28 Uhr
Hallo Wolfgang,

ich würde Notepad++ nehmen.
Eine Textdatei mit ~ 400MB (ca. 930.000 Zeilen) konnte ich damit problemlos öffnen.

Gruß,
gemini
Bitte warten ..
Mitglied: mak-xxl
01.05.2012 um 12:55 Uhr
Moin Wolfgang,

wenn es kein Editor sein muss, kann 'sed' unter Win (Gnu-Pack) oder Linux helfen:

sed -u -i "~s|;|\||g" datei.txt
Das Ganze auf der Befehlszeile oder als Batch Einzeiler.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: moebelwachs
01.05.2012 um 13:53 Uhr
Danke für alle Tips, sed war die Lösung !
Die ganzen Editoren schmieren ab, obs nun Notepad++, Ultraedit, Excel ... ist.

Wieder was gelernt ;)
Danke,
Schöne Grüße Wolfgang
Bitte warten ..
Mitglied: pieh-ejdsch
01.05.2012 um 13:54 Uhr
moin Wolfgang,


als Batch in etwa so:
01.
@echo off 
02.
setlocal disabledelayedexpansion 
03.
if "%~1" == "" echo Syntaxfehler. Datei angeben!&goto :eof 
04.
if not exist "%~1" echo Datei nicht gefunden!&goto :eof 
05.
findstr /n "^" "%~1" > "%~1.LN" 
06.
07.
for /f "usebackq tokens=*" %%i in  ("%~1.LN") do ( 
08.
  set "Zeile=%%i" 
09.
  setlocal enabledelayedexpansion 
10.
  set "Zeile=!Zeile:;=|!" 
11.
  echo\!Zeile:*:=! 
12.
  endlocal 
13.
14.
)>"%~1-Neu.TXT" 
15.
del "%~1.LN"
[Edit]
ein sekündchen zu spät ...
[/Edit]

Gruß Phil
Bitte warten ..
Mitglied: moebelwachs
01.05.2012 um 14:07 Uhr
Trotzdem .. Merci ;)
Bitte warten ..
Mitglied: bastla
01.05.2012 um 14:38 Uhr
Hallo moebelwachs!

Um die gesammelten Werke zu komplettieren als weitere Alternative mit Bordmitteln die VBS-Variante dazu:
01.
Ein = "D:\Datei_alt.txt" 
02.
Aus = "D:\Datei_neu.txt" 
03.
Von = ";" 
04.
Nach = "|" 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
Set E = fso.OpenTextFile(Ein) 
08.
Set A = fso.CreateTextFile(Aus) 
09.
Do While Not E.AtEndOfStream 
10.
    A.WriteLine Replace(E.ReadLine, Von, Nach) 
11.
Loop
Grüße
bastla
Bitte warten ..
Mitglied: FOrtwein
03.05.2012 um 14:56 Uhr
Hallo,

warum nicht einfachste aller Lösungen

MICROSOFT WORD?!?!?!

Da kannst du sogar während dem Landen der Datei schon Änderungen vornehmen.

Gruß
Frank
Bitte warten ..
Mitglied: moebelwachs
03.05.2012 um 20:36 Uhr
...das hab ich doch glatt der wissenschaft halber noch ausprobiert
Nach 683 Seiten meinte Word(2010), daß ich die maximale Anzahl Seiten überschritten hätte.
Die Entwurfsansicht funktionierte und zählte 3.239.237 Zeichen. WORD selbst war nicht mehr sehr
kooperativ, die meiste Zeit verbrachte es mit "keiner Rückmeldung" trotz 4GB RAM und einer angegeben Dateigröße von
169 MB (rein Text, ohne Bilder).

Für Forscher zum Vergleich die von MS zur Verfügung gestellten Werte:
http://support.microsoft.com/kb/211489/de

Grüße
Bitte warten ..
Mitglied: pieh-ejdsch
03.05.2012 um 21:48 Uhr
Hallo Frank,

das soll ja hier nicht die Aufgabe sein, eine so große Datei auf den Bildschirm darzustellen.
Word muss ja erst alles Durchnudeln und im Speicher halten. Etwa 3 mal Dateigröße ...

So ein Script frag auch nicht erst nach der Codierung.
Beim Ersetzen mit den Scripten werden die Dateien geöffnet, gelesen und geschlossen (Beim Batch zum Beispiel jedesmal je Zeile)
Die Ergebnisse werden in eine Neue Datei geschrieben.

Ein Abarbeiten Zeile für Zeile ist so im Endeffekt viel effektiver.

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In txt file an bestimmter Position zeichen ersetzen, Ideen ?
gelöst Frage von buliwyfBatch & Shell7 Kommentare

EIn freundl. Hallo all ;-) mein Anliegen was mich jetzt 2 Tage beschaeftigt ist : wie kann ich in ...

Batch & Shell
Zeichen , durch LF CR ( also neu Zeile) in Datei ersetzen.
gelöst Frage von mycroftoneBatch & Shell2 Kommentare

Hallo Zusammen Möchte per Batch in einer Datei das Zeichen , durch ein LFCR ersetzen lassen. Manuel mit WORD ...

Batch & Shell
Wie ersetze ich in einer .txt ein Lehrzeichen mit einen Zeilenumbruch?
gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo Zusammen, ich hoffe Ihr könnt mir helfen: folgende Ausgangssituation: Inhalt der .txt-Datei: Vorname Nachname, Abteilungskürzel <Mailadresse>; Vorname Nachname, ...

VB for Applications
VBScript: Hexwert durch Zeichen (String) ersetzen
gelöst Frage von GurkenhobelVB for Applications12 Kommentare

Hallo Gemeinde, ich benötige wieder einmal Euer sachkundiges Expertenwissen. Und zwar möchte ich ältere Textdokumente (erstellt um 2000, evtl. ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 4 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 5 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 20 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 23 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte15 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...