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

Strichpunkt gegen CR-Linefeed in Textdatei ersetzen

Frage Entwicklung Batch & Shell

Mitglied: pbelcl

pbelcl (Level 1) - Jetzt verbinden

10.11.2013 um 16:43 Uhr, 2072 Aufrufe, 9 Kommentare, 1 Danke

Hi Leute,

Ich habe eine TExtdatei, die von einem System automatisch erzeugt wird.
Dort stehen Emailadressen in einer langen Wurst drinnen, die immer durch ein Semikolon (;) getrennt sind.

01.
email1@domain.com;email2@domain.com;email3@domain.com;email4@domain.com;email5@domain.com;email6@domain.com;
Ich muss nun dafür sorgen, dass JEDE Adresse in einer Zeile steht und die Semikolons verschwinden

01.
email1@domain.com 
02.
email2@domain.com 
03.
email3@domain.com 
04.
email4@domain.com 
05.
email5@domain.com 
06.
email6@domain.com
Speziell das Ersetzen ist für mich schwierig, da ich die Zeichencodes vom Zeilenumbruch nicht kenne ....
Habt ihr einen Tipp oder ein Codeschnipsel, wie ich das mit einer Batchdatei schaffe?
Mitglied: certifiedit.net
10.11.2013 um 18:24 Uhr
Hallo,

probier es mal mit \n ;)

Beste Grüße,

Christian
Bitte warten ..
Mitglied: bastla
10.11.2013 um 20:33 Uhr
Hallo pbelcl!

Aufgrund der Einschränkungen von Batch würde ich zu VBS raten:
01.
Ein = "D:\Textdatei.txt" 
02.
Aus = "D:\Adressen.txt" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
fso.CreateTextFile(Aus).Write Replace(fso.OpenTextFile(Ein).ReadAll, ";", vbNewline)
Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
10.11.2013, aktualisiert um 21:08 Uhr
Hallo Bastla,

An diesen Einschränkungen scheitere ich offensichtlich seit Stunden...
Irgendwas mit der Übergabe des "\n" an den Ausgabestring hat sich massiv gewehrt
Egal!

Habs gerade erfolgreich mit deinem VBS-Code zum laufen gebracht, ist wirklich super!!
Danke für die schnelle Hilfe!!
Bitte warten ..
Mitglied: Endoro
10.11.2013 um 22:20 Uhr
Hi, die Einschränkungen kann ich grad nicht sehen
01.
(for %%a in (email1@domain.com;email2@domain.com;email3@domain.com;email4@domain.com;email5@domain.com;email6@domain.com;) do @echo %%a)>file.txt
lg.
Bitte warten ..
Mitglied: bastla
10.11.2013 um 22:25 Uhr
@ Endoro
... dann schau mal bei MS vorbei ...

Grüße
bastla
Bitte warten ..
Mitglied: colinardo
11.11.2013, aktualisiert um 11:43 Uhr
Hallo pbelcl,
könntest du z.B. so machen:
01.
@echo off & setlocal 
02.
set fileIN=test.txt 
03.
set fileOUT=test2.txt 
04.
for /f "usebackq delims=" %%a IN ("%fileIN%") DO @( 
05.
  for %%b IN (%%a) DO @(echo %%b>>"%fileOUT%") 
06.
)
Hier bist du aber wie @bastla schon erwähnt hat, eingeschränkt was die maximale Länge einer Zeile angeht (8.191 Zeichen) .
Mit der Powershell könntest du es so ohne Beschränkung machen:
01.
Get-Content "E:\dateiIN.txt" | %{$_.Replace(";","`r`n")} | Set-Content "E:\dateiOUT.txt"
Grüße Uwe
Bitte warten ..
Mitglied: Endoro
11.11.2013 um 11:33 Uhr
Hi,
sed for Windows benötigt double quotes (Zollzeichen), hier in colinardo's Beispiel gehts aber ganz ohne: sed s/;/\n/g file.txt, der 'beste' sed-Befehl ist sed y/;/\n/ file.txt, am allerbesten ist aber der 'Unix'-Befehl <file.txt tr ; \n
lg.
Bitte warten ..
Mitglied: pbelcl
11.11.2013 um 19:47 Uhr
Hallo Ihr Lieben,

Toll wieviele Vorschläge ich von euch bekomme!!
Gebt mir ein bisschen Zeit, ich werde mir das alles ansehen!

Danke vorerst mal für die vielen Tipps!
Bitte warten ..
Mitglied: pbelcl
12.11.2013 um 16:45 Uhr
Habe mir die unterschiedlichen Vorschläge angesehen und entschieden dass ich die VBS Variante nehme.
Einfacher Grund:
Mein Testfile hat schon 1890 Zeichen!
Wird im Echtbetrieb möglicherweise über die 8000er Grenze kommen, somit bleib ich sicherheitshalber bei der VBS Variante von bastla!
Obwohl ich normalerweise "plain Batch" immer bevorzuge

Da ich sehr selten solche Lösungen brauche, ist mein Wissen dahingehend immer etwas eingetrocknet!
Deshalb bin ich bin echt dankbar dass es euch gibt!!
Danke an alle die sich für meine Lösung den Kopf zerbrochen haben ....
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Windows Netzwerk
Windows Server 2003 SBS Netzwerk durch neuen Server Ersetzen (9)

Frage von MultiStorm zum Thema Windows Netzwerk ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

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 ...