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

Wort aus einer Text datei entfernen

Frage Entwicklung Batch & Shell

Mitglied: Bjoern909

Bjoern909 (Level 1) - Jetzt verbinden

03.02.2008, aktualisiert 04.02.2008, 6540 Aufrufe, 5 Kommentare

hallo Batchprofis,
Hier bin ich wieder.
Diesmal möchte ich ein Wort z.B.: Bjoern aus einer Textdatei entfernen. Ich weis aber nicht WO dieses Wort in der textdatei steht. Also kann keine Zeile nennen.

-------------Textdatei:
Daniel
Bjoern
Christian
Kristin

nach dem ausführen der Batch datei steht in der Textdatei dann nur noch:

--------------Textdatei:
Daniel
Christian
Kristin

so habe ich mir das vorgestellt. Wenn ihr noch mehr Informationen braucht dann sacht bescheid und WELCHE Infos ihr noch braucht.

MfG Bjoern
Mitglied: bastla
03.02.2008 um 18:09 Uhr
Hallo Bjoern909!

Soferne das Wort (wie in Deinem Beispiel) alleine in einer Zeile steht:
01.
findstr /v /b /e /c:"Bjoern" Textdatei.txt>TextdateiKurz.txt
Ansonsten etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Datei=D:\DeinText.txt" 
03.
set "Wort=Bjoern" 
04.
 
05.
set "Bak=%Datei%.bak" 
06.
move "%Datei%" "%Bak%" 
07.
for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine 
08.
goto :eof 
09.
 
10.
:ProcessLine 
11.
echo %Zeile%|findstr /c:"%Wort%">nul || goto :SchreibeZeile 
12.
set "Zeile=!Zeile:%Wort%=!" 
13.
 
14.
:SchreibeZeile 
15.
echo.%Zeile%>>"%Datei%"
Einschränkung dieser Variante: Wenn ein "!" im Text vorkommt, wird dieses entfernt, gibt es in der selben Zeile ein zweites "!", verschwindet auch der Text dazwischen. Auch Leerzeilen gehen verloren.

Gesucht wird übrigens auch nach Wortbestandteilen (wie etwa in "Jens-Bjoern" oder "Bjoern-Uwe").

Zumindest dem "!"-Problem ließe sich bei Bedarf entweder durch die Verwendung einer Konstanten (das Wort muss anstelle der Variablen %Wort% in die beiden Zeilen des Teiles ":ProcessLine" geschrieben und der Batch auch anderweitig angepasst werden) oder den Einsatz eines (temporären) VBScripts (damit blieben auch ev Leerzeilen erhalten) beikommen.

Die Frage, wie (abgetrennt - wenn ja: wodurch? - oder als Wortbestandteil) bzw wo (Beginn oder Ende der Zeile oder auch mittendrin) das Wort in der Zeile steht, wäre aber noch zu klären.

Grüße
bastla
Bitte warten ..
Mitglied: Bjoern909
03.02.2008 um 18:56 Uhr
Okay dein 2. Beispiel habe ich verstanden aber das erste verstehe ich irgendwie nicht. Textdatei ist die eigentliche Datei aus der das Wort entfernt wird und Textdateikurz ist was? Wird das Wort aus Textdatei in Textdateikurz eingefügt oder ist textdateikurz gleich Textdatei (halt nur ohne das Wort)?
Bitte warten ..
Mitglied: bastla
03.02.2008 um 19:02 Uhr
Hallo Bjoern909!

... ist textdateikurz gleich Textdatei (halt nur ohne das Wort)?
Hat Dein Test etwas anderes ergeben?

Grüße
bastla
Bitte warten ..
Mitglied: Bjoern909
04.02.2008 um 12:45 Uhr
Nein ich weis nur nicht was ich bei textdateikurz.txt fürn Name angeben muss. oder kann ich den Namen lassen?
Bitte warten ..
Mitglied: bastla
04.02.2008 um 15:21 Uhr
Hallo Bjoern909!

Dann also komplett:
01.
@echo off & setlocal 
02.
set "Datei=D:\DeinText.txt" 
03.
set "Wort=Bjoern" 
04.
 
05.
set "Bak=%Datei%.bak" 
06.
move "%Datei%" "%Bak%" 
07.
findstr /v /b /e /c:"%Wort%" "%Bak%">"%Datei%"
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows Update

Windows Update-Suche nach Win7 Neuinstallation wieder schneller

(2)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Heiß diskutierte Inhalte
Exchange Server
Bestehende eMails autoamatisch weiterleiten (21)

Frage von metal-shot zum Thema Exchange Server ...

Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...