Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Erste und letzte Zeile in großen Dateien schnell löschen

Frage Entwicklung Batch & Shell

Mitglied: StefanK007

StefanK007 (Level 1) - Jetzt verbinden

26.01.2012 um 11:51 Uhr, 5549 Aufrufe, 7 Kommentare

Hallo,

ich bekomme täglich mehrere Dateien welche importiert werden sollen.
In allen Dateien muss die erste und letzte Zeile gelöscht werden.
Nach dem Inhalt kann man nicht suchen, da er keine Schlagwörter oder ähnliches beinhaltet.

Eine fast perfekte Lösung habe ich hier gefunden: http://www.administrator.de/index.php?content=51400
Allerdings bricht der Befehl "More +1 TEST.DAT >..\TEMP\TEST.DAT" ab, falls die Datei mehr als 65535 Zeilen beinhaltet.

Der erste Beitrag (siehe Link!) funktioniert zwar bei den großen Dateien, ist aber zu langsam für die vielen Dateien.

Gibt es eine Möglichkeit "more" mit mehr als 65.535 Zeilen zu nutzen?
Oder gibt es eine gute Alternative?

Viele Grüße
Stefan
Mitglied: bastla
26.01.2012 um 12:33 Uhr
Hallo StefanK007!

Ob die folgende Alternative gut ist, müsstest Du testen :
01.
@echo off & setlocal 
02.
set "Ein=D:\Viele Zeilen.txt" 
03.
set "Aus=D:\Etwas weniger Zeilen.txt" 
04.
 
05.
set R=%temp%\Reduziere.vbs 
06.
 >%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):T=Split(fso.OpenTextFile("%Ein%").ReadAll,vbCrLf):T(0)="" 
07.
>>%R% echo L=UBound(T):If T(L)="" Then T(L-1)="":Else:T(L)="":End If:TR=Join(T,vbCrLf):fso.CreateTextFile("%Aus%").Write Mid(TR,3,Len(TR)-4) 
08.
cscript //nologo %R%
Grüße
bastla
Bitte warten ..
Mitglied: StefanK007
26.01.2012 um 14:12 Uhr
Danke, werde es mal testen.
Habe nun ein VBS Script entwickelt bekommen, welches auch sehr fix ist.
Batch ist aber eigentlich einfacher zu handeln ;)
Bitte warten ..
Mitglied: bastla
26.01.2012 um 14:22 Uhr
Hallo StefanK007!
Habe nun ein VBS Script entwickelt bekommen
Ob Dir wohl in Zeile 5 etwas aufgefallen ist?

Grüße
bastla
Bitte warten ..
Mitglied: VooDoo4711
26.01.2012 um 16:29 Uhr
Hallo,

Du könntest auch in die Unix/Linux-Trickkiste greifen und den SED verwenden.
SED for Windows unter: http://gnuwin32.sourceforge.net/packages/sed.htm

Dann sollte ein

type TEST.DAT | sed "1d;\$d" > TEST2.DAT

reichen.
Bitte warten ..
Mitglied: icsat
26.01.2012 um 19:48 Uhr
Hallo StefanK007,

ich kann Dir aus meiner Erfahrung heraus nur empfehlen für (sehr) große Dateien die mit Bordmitteln verarbeitet werden sollen VBS zu verwenden. Der Unterschied kann schnell im Bereich von mehreren Minuten liegen.
Ich musste z.B. mal in einer Datei (ca. 1- 1,5 GB mit über 1 Mio. Datensätzen) täglich die erste Stelle in jedem Datensatz von 0 auf 2 ändern. Mein Batch lag bei ca. 30 Minuten und das entsprechende VBS bei ca. 30 Sekunden (oder drunter) wenn ich mich recht erinnere. Daher verwende das für Dich entwickelte VBS oder eben bastlas "Batch".


Gruß icsat
Bitte warten ..
Mitglied: pieh-ejdsch
30.01.2012 um 15:15 Uhr
moin,

in native Batch hmm eventuell so
01.
@echo off &setlocal 
02.
if "%~1" == "" echo Syntaxfehler. >&2 &echo Dateien zum Bearbeiten dem Batch uebergeben &pause &goto :eof 
03.
:nochmal 
04.
set "Zeile=" 
05.
findstr /n "^" %1>"%temp%\TMP1" 
06.
setlocal enabledelayedexpansion 
07.
08.
for /f "skip=1usebackq delims=" %%i in ("%temp%\TMP1") do (if defined Zeile echo(!Zeile:*:=! 
09.
	endlocal 
10.
	set "Zeile=%%i" 
11.
	setlocal enabledelayedexpansion 
12.
13.
)>"%~dpn1-Neu-%~x1" 
14.
endlocal 
15.
if "%~2" == "" goto :eof 
16.
shift 
17.
goto :nochmal


Gruß Phil
Bitte warten ..
Mitglied: StefanK007
03.02.2012 um 10:48 Uhr
Danke für eure Infos!
Ich werde es mir die Tage zu Gemüte führen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bei copy aus FOR Schleife wird letzte Zeile abgeschnitten

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
Zeile eine Datei per batch ersetzen (2)

Frage von duckknight zum Thema Batch & Shell ...

Batch & Shell
gelöst In allen Textdateien eines bestimmten Pfades die Zeilen x bis Ende löschen (2)

Frage von Schloth zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...