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

Zwei oder mehr Leerzeichen ersetzen mit einem Bindestrich

Frage Entwicklung

Mitglied: mc-doubleyou

mc-doubleyou (Level 2) - Jetzt verbinden

04.05.2011, aktualisiert 12:16 Uhr, 10420 Aufrufe, 11 Kommentare

Da ich nicht sicher bin ob es ein VB-Script, Batch oder sonst was wird stell ichs mal hier rein.

Hallo,

brauche bitte Hilfe, ich habe ein PDF in ein TXT konvertiert damit ich aus diesem TXT dann ein XLS machen kann muss ich alles was mehr als ein Leerzeichen ist irgendwie in ein anderes Trennungszeichen zB.: Bindestrich konvertieren.

Kann mir da bitte wer helfen. Mit Notepad++ hab ich zumindest geschafft das 2 Leerzeichen = 1 Bindestrich aber hilfreich ist das auch nicht wirklich.

Danke!

lg mcdy
Mitglied: RedFireFighter
04.05.2011 um 12:39 Uhr
Also was mir auf der Schnelle einfallen würde und war sehr einfach ist:

Editor öffnen; Die längste Reihenfolge an Leerzeichen ermitteln; Zeichen ersetzen; Die längste Reihenfolge an Leerzeichen eingeben und durch ein anderes Zeichen ersetzen; Danach das mit einem Leerzeichen weniger durchführen. Das machst du so lange bist du nur mir 1 Leerzeichen hast.

Wie gesagt ist jetzt sehr einfach!

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Lochkartenstanzer
04.05.2011 um 12:41 Uhr
Zitat von mc-doubleyou:
Hallo,

brauche bitte Hilfe, ich habe ein PDF in ein TXT konvertiert damit ich aus diesem TXT dann ein XLS machen kann muss ich alles was
mehr als ein Leerzeichen ist irgendwie in ein anderes Trennungszeichen zB.: Bindestrich konvertieren.

Kann mir da bitte wer helfen. Mit Notepad++ hab ich zumindest geschafft das 2 Leerzeichen = 1 Bindestrich aber hilfreich ist das
auch nicht wirklich.


Normalerweise macht man sowas mit sed oder ähnlichem, aber in Notepad würde ich es so machen:

Drei Leerzeichen durch zwei Leerzeichen ersetzen, und zwar solange, bis keine Ersetzungen mehr möglich sind.

Und dann zwei Leerzeichen durch einen Bindestrich -et voila - Das gewünschte Ergebnis sollte da sein.
Bitte warten ..
Mitglied: RedFireFighter
04.05.2011 um 12:50 Uhr
Mir ist das nochwas eigenfallen!

Im Word den Ersetzten Dialog öffnen.
Dann gibts bei da Erwitert>>, dort aktivierst du Platzhalter verwenden.
Jetzt gibts du bei Suchen nach folgendes ein: Leerzeichen{2;}
Bei ersetzten dein gewünschtes Zeichen. Statt Leerzeichen natürlich ein wirkliches Leerzeichen eingeben ;)

Alle ersetzen und fertig!!

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: mc-doubleyou
04.05.2011 um 12:59 Uhr
Hallo ihr 2 erstmal danke für die Antwort,

aber da dieser Prozess evtl öfter passieren soll will ich nicht von 50 bis auf 2 Leerzeichen reduzieren müssen.

Bzgl. sed das ist doch ein UNIX Editor oder? Ich habe nämlich hier nur ein Windows.

Theoretisch bräuchte ich ja "nur" ein Programm welches fähig ist " "> bei Suchen und Ersetzen zu interpretieren.

Naja vielleicht findet sich ja noch wer bzw. vl. zeigen Bastla oder Biber noch was in ihnen steckt *schlackere jedesmal mit den Ohren*

lg mcdy
Bitte warten ..
Mitglied: micneu
04.05.2011 um 14:25 Uhr
nutze in notepadd++ suchen die option regulare ausdrücke

< (\s\s)

sollte 2 lehrzeichen entsprechen.

gruß michael
Bitte warten ..
Mitglied: TsukiSan
04.05.2011 um 14:55 Uhr
hallo mc-doubleyou,

eventuell hilft dir ja dieses VBS-Script schon und man muss ja nicht alle Möglichkeiten
" " > durchackern.
probier mal:
01.
Option Explicit 
02.
 
03.
Dim Pfad 
04.
Dim SuchText 
05.
Dim ReplaceText 
06.
dim FSO , MeineDatei 
07.
Dim MeineDateiNeu 
08.
Dim objDialog , intResult 
09.
Dim Zaehler 
10.
 
11.
Pfad = BrowseForFile("C:\", "Textdateien (.txt)|*.txt|All Files|*.*") 
12.
 
13.
If Pfad = "" Then 
14.
	Wscript.Echo "Keine Datei ausgewählt. Script wird beendet" 
15.
	Wscript.Quit 
16.
End If 
17.
 
18.
Function BrowseForFile(pstrPath, pstrFilter) 
19.
	Set objDialog = CreateObject("UserAccounts.CommonDialog") 
20.
	objDialog.Filter = pstrFilter 
21.
	objDialog.InitialDir = pstrPath 
22.
	objDialog.Flags = &H80000 + &H4 + &H8 
23.
	intResult = objDialog.ShowOpen 
24.
	BrowseForFile = objDialog.FileName 
25.
End Function 
26.
 
27.
Set objDialog = Nothing 
28.
 
29.
SuchText = InputBox("Bitte Suchtext eingeben." , "Suchtext...","Suche") 
30.
ReplaceText = InputBox("Bitte ErsetzenText eingeben." , "ErstzenText...","Ersetze") 
31.
 
32.
Ersetzen 
33.
 
34.
Private Sub Ersetzen() 
35.
         
36.
	On Error Resume next 
37.
	 
38.
	Set FSO = createobject("Scripting.FileSystemObject") 
39.
 
40.
	Set MeineDatei = FSO.OpenTextFile(Pfad, 1) 
41.
		MeineDateiNeu = Replace(MeineDatei.ReadAll,SuchText,ReplaceText) 
42.
		Zaehler = Instr(MeineDateiNeu,ReplaceText) 
43.
	MeineDatei.Close 
44.
 
45.
	Set MeineDatei = FSO.CreateTextFile(Pfad,True) 
46.
		MeineDatei.Write(MeineDateiNeu) 
47.
	MeineDatei.Close 
48.
 
49.
	Set FSO = Nothing 
50.
	Set MeineDatei = Nothing 
51.
 
52.
End Sub 
53.
 
54.
If Not Zaehler = 0 Then 
55.
Wscript.Echo "In der Datei: " & Chr(34) & Pfad & Chr(34) & VbCrlf _ 
56.
              & "wurde: " & Chr(34) & Suchtext & Chr(34) & " durch " _ 
57.
              & Chr(34) & ReplaceText & Chr(34) & "ersetzt." 
58.
Else 
59.
Wscript.Echo "In der Datei: " & Chr(34) & Pfad & Chr(34) & VbCrlf _ 
60.
             & "konnte der gesuchte Text nicht gefunden werden." 
61.
End If
das nehme ich zum einfachen ersetzen von irgendwelchen Strings in Text(typischen)dateien

Gruss
Tsuki

[Edit]
wie Biber schon anmerkt:
Wenn du EIN LEERZEICHEN ungerade Anzahl nur behalten willst, dann suche nach mindestens ZWEI LEERZEICHEN gerade Anzahl
[/Edit]
Bitte warten ..
Mitglied: miniversum
04.05.2011 um 14:59 Uhr
Ich bin zwar weder Bastla noch Biber aber, ...
In vbs kanns tdu die Datei einlesen. Dann gibts da nen replace befehl, danach wieder in eine Datei schreiben. Wobei du da dann auch mehrere replace nacheinander machen kannst bzw. in schleife um eben auch 50 leerzeichen zu einem zu reduzieren.
In Batch kannst du eine Datei mit einer for schleife zeile für zeile verarbeiten. Am einfachsten ist es indem du dann eine unterprozedur aufrufst, die zeile einer variabeln zuweist, dann die leerzeichen ersetzt und wieder in eine (andere) datei schreibst:
echo %zeile: =_%>>datei.txt
das geht natürlich auch wieder mehrfach hintereinander oder in einer übergeordneten schleife.
Bitte warten ..
Mitglied: Lochkartenstanzer
04.05.2011 um 15:07 Uhr
Zitat von mc-doubleyou:
Bzgl. sed das ist doch ein UNIX Editor oder? Ich habe nämlich hier nur ein Windows.


mit cygwin alles kein Problem. Da bekommt man die ganze gnu-toolchain und einiges mehr, wenn man will.

http://www.cygwin.com
Bitte warten ..
Mitglied: Biber
04.05.2011 um 15:13 Uhr
Moin mc-Double-you,

nun macht da nicht so'n Heckmeck drum

Eine Zeile VBScript:
01.
'RemoveDoubleSpaces.vbs 
02.
Wscript.Echo Replace(Replace(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(wscript.arguments(0)).ReadAll, "    "," "),"   "," "), "  "," ")
Demo am CMD-Prompt:
>type TextMitDoppeltenLeerzeichen.txt 
Text    mit    Leerstellen      an      irgendwelchen         Positionen Text    mit    Leerstellen      an      irgendwelchen         Positionen 
Text        mit             Leerstellen      an      irgendwelchen                     Positionen 
Text    mit    Leerstellen      an      irgendwelchen         Positionen Text    mit    Leerstellen      an      irgendwelchen         Positionen 
Text        mit             Leerstellen      an      irgendwelchen                     Positionen 
Text    mit    Leerstellen      an      irgendwelchen         Positionen Text    mit    Leerstellen      an      irgendwelchen         Positionen 
Text        mit             Leerstellen      an      irgendwelchen                     Positionen 
Text    mit    Leerstellen      an      irgendwelchen         Positionen Text    mit    Leerstellen      an      irgendwelchen         Positionen 
Text        mit             Leerstellen      an      irgendwelchen                     Positionen 
Text    mit    Leerstellen      an      irgendwelchen         Positionen Text    mit    Leerstellen      an      irgendwelchen         Positionen 
Text        mit             Leerstellen      an      irgendwelchen                     Positionen 
Text    mit    Leerstellen      an      irgendwelchen         Positionen Text    mit    Leerstellen      an      irgendwelchen         Positionen 
Text        mit             Leerstellen      an      irgendwelchen                     Positionen 
 
(=15:07:33  F:\schnipsel=) 
>RemoveDoubleSpaces.vbs TextMitDoppeltenleerZeichen.txt 
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen 
Text mit Leerstellen an irgendwelchen Positionen
Fertig.
Okay, statt Ausgabe auf den Monitor sollte der Krams umgeleitet werden mit
RemoveDoubleSpaces.vbs TextMitDoppeltenLeerzeichen.txt > TextMitWenigerLeerzeichen.txt

Und falls es für die nachfolgende Verarbeitung in Excel nötig sein sollte, dann halt statt mehrere SPACEs mit einem SPACE ersetzen:
...  Replace("       ","_")...   'Replace MehrereSpaces mit "_"

Und ganz aussen wieder ein
...  Replace("__","_")...   ' Replace mehrere "_" durch eines.
Grüße
Biber
Bitte warten ..
Mitglied: Lochkartenstanzer
04.05.2011 um 15:27 Uhr
Mit sed sieht das so aus:

sed -e "s/ */-/g" -i TextMitDoppeltenLeerzeichen.txt

oder wenn die Datei nicht verändert werden soll:

sed -e "s/ */-/g" <TextMitDoppeltenLeerzeichen.txt > Text-mit-Bindestrichen.txt


Nachtrag: zwischen "s/" und "*/" sind 3 Leerzeichen!
Bitte warten ..
Mitglied: tahuma
24.04.2014 um 23:12 Uhr
Hallo mcdy,
in notepad++ Suchen und Ersetzen die Regulären Expressions aktivieren und nach 2 Leerzeichen gefolgt von einem + suchen.
Findet alles, was mehr als ein Leerzeichen ist.
gruss
tahuma
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Powershell - In Textdatei suchen und ersetzen (1)

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

Microsoft Office
gelöst Dropdownlisten in Abhängigkeit mit Leerzeichen im Namen (Datenüberprüfung) (2)

Frage von kevische zum Thema Microsoft Office ...

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

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...