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, 6549 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (50)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...