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

Mit freundlichen Grüßen 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 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...