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

Aus mehreren .txt Dateien Zeilen bedingt löschen

Frage Entwicklung

Mitglied: Vully64

Vully64 (Level 1) - Jetzt verbinden

18.11.2010 um 14:55 Uhr, 6472 Aufrufe, 2 Kommentare

Ich möchte aus mehreren .TXT Dateien eines Verzeichnisses die ersten 4 Zeilen löschen, wenn eine Bedingung (erstes Wort in der ersten Zeile lautet "Zeitpunkt") erfüllt ist.

Ich habe mir viele verwandte Themen bereits angeschaut aber nichts passendes zur bedingten Abfrage gefunden. Diese ist jedoch wichtig, damit die Dateien nicht doppelt bearbeitet werden können.

Ich habe es mit der folgenden Batch versucht

@echo off
set path=P:utilUnxUtilsusrlocalwbin

FOR %%i IN (*.txt)do (
FOR /F "tokens=1" %%a IN ('sed -n "1p" "%%i"') DO set Wort=%%a
if %Wort% == "Zeitpunkt" then cat "%%i" | sed -e "1,4d" > "%%i".neu | mv "%%i".neu "%%i" )


bei der Ausführung erscheint keine Fehlermeldung aber die Dateien werden auch nicht verändert.
Der "set path" verweist auf die UnixUtils (für "sed" "cat" ...)

Ich habe das gleiche mit einem ShellSkript unter Linux hinbekommen, es muss aber aus Windows heraus aufgerufen werden (per Doppelklick im Explorer)

#!/bin/sh

#Script zum Löschen der ersten 4 Zeilen aus den Textdateien im Verzeichnis,
#wenn die erste Zeile das Wort "Zeitpunkt" enthält.
#Wichtig: Das Script muss im gleiche Verzeichnis liegen, in dem auch
#die zu beabeitenden Textdateien sind.


for i in ./*.txt;
do
if [ "$(sed -n '1p' "$i" | awk '{print $1}')" = "Zeitpunkt" ]; then
cat "$i" | sed -e '1,4d' > "$i".neu;
mv "$i".neu "$i";
fi
done

Es wäre toll, wenn mir jemand auf die Sprünge helfen könnte
Mitglied: bastla
18.11.2010 um 16:02 Uhr
Hallo Vully64!

Ungetestet (und nur mit Bordmitteln) etwa so:
01.
@echo off & setlocal 
02.
set "Verz=D:Dein Verzeichnis" 
03.
set "Krit=Zeitpunkt" 
04.
 
05.
pushd "%Verz%" 
06.
for /f "delims=" %%i in ('dir /b /a-d *.txt') do call :ProcessFile "%%i" 
07.
popd 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
set /p Zeile1=<%1 
12.
echo "%Zeile1%"|findstr /b """%Krit%">nul || goto :eof 
13.
set "Bak=%temp%\%~1" 
14.
move %1 "%Bak%" 
15.
more +4 "%Bak%">%1 
16.
::del "%Bak%" 
17.
goto :eof
Solange die vorletzte Zeile nicht durch das Entfernen der Kommentarzeichen "::" aktiviert wird, bleibt die jeweilige Originaldatei im Verzeichnis %temp% als Sicherungskopie erhalten - bitte trotzdem zunächst mit Kopien testen ...

Grüße
bastla
Bitte warten ..
Mitglied: Vully64
18.11.2010 um 16:30 Uhr
Hallo bastla,

echt genial, genau so wollte ich das haben.

Vielen Dank

Vully64
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Maximale Größe zu verarbeitender txt-Dateien mit Batch (5)

Frage von Muck1303 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel VBA - Inhalte und Dateiname von txt-Dateien automatisch in Excel importieren (2)

Frage von Booster07 zum Thema Microsoft Office ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...