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

File durchsuchen, kopieren und danach weiter suchen

Frage Entwicklung Batch & Shell

Mitglied: cookie

cookie (Level 1) - Jetzt verbinden

11.09.2007, aktualisiert 12.09.2007, 4085 Aufrufe, 4 Kommentare

Hallo zusammen.

Ich möchte aus Logfiles (teilweise über eine Million Zeilen gross) einen Wert suchen, in eine neue Textdatei kopieren danach weiter suchen.

Der wert sieht z.B so aus: CopiesCompleted="39"

Wobei sich die Zahl dahinter immer ändert. Genau diese Zahl benötige ich aber für eine Verrechnung. Nun meine Frage, ist es möglich das TextFile PCNAME.txt nach dem Wert CopiesCompleted= zu durchsuchen, die Zahl dahinter zu kopieren, danach im Textfile weitersuchen und gleich aufaddieren? So das zum schluss nur noch angezeigt wird CopiesCompleted=5201 oder so in etwa.

Vielen dank.

Gruss
Cookie
Mitglied: Logan000
11.09.2007 um 14:32 Uhr
per vbSkript solte das in etwa so gehen:
01.
Const szSuch = "text" ' Such test 
02.
 
03.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
04.
Set objSourceFile = objFSO.OpenTextFile("Source.txt", 1)	' Quelldatei öffnen 
05.
Set objDestFile = objFSO.CreateTextFile("Dest.txt", True)	' Zieldatei anlegen / überschreiben 
06.
 
07.
	Do Until objSourceFile.AtEndOfStream 	' Gesammtes TextDok durchgehen 
08.
		szNextLine = objSourceFile.Readline	' Zeile aus Quelldatei einlesen 
09.
		if instr(szNextLine,szSuch) Then	' Wenn Suchtest vorhanden 
10.
			objDestFile.writeline szNextLine '  Zeile in Zieldatei schreiben 
11.
		end if		 
12.
	Loop
Das aufaddieren fehlt. Aber ich hoffe, es ist immerhin ein Anfang.

[Edit Biber] Formatierung auf < code > gesetzt. [/Edit]
Bitte warten ..
Mitglied: bastla
11.09.2007 um 17:50 Uhr
Hallo Cookie!

Wenn Du tatsächlich nur die Gesamtsumme benötigst, sollte eigentlich folgendes reichen:
01.
@echo off & setlocal 
02.
for /f "tokens=2 delims==" %%i in ('findstr "CopiesCompleted=" Source.txt') do set /a Anzahl+=%%i >nul 
03.
echo CopiesCompleted=%Anzahl%
Grüße
bastla
Bitte warten ..
Mitglied: bastla
11.09.2007 um 18:12 Uhr
... und das (geringfügig ergänzte) Script von Logan000 schreibt auch noch vorweg die gefundenen Zeilen in die Zieldatei:
01.
Const szSuch = "CopiesCompleted=" 'Suchtext 
02.
iRelPos = Len(szSuch) + 1 'relative Position (bezogen auf den Beginn des Suchtextes) der gesuchten Zahl 
03.
 
04.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
05.
Set objSourceFile = objFSO.OpenTextFile("Source.txt", 1) 'Quelldatei öffnen 
06.
Set objDestFile = objFSO.CreateTextFile("Dest.txt", True) 'Zieldatei anlegen / überschreiben 
07.
 
08.
lSumme = 0 
09.
Do Until objSourceFile.AtEndOfStream 'gesamtes TextDok durchgehen 
10.
	szNextLine = objSourceFile.Readline 'Zeile aus Quelldatei einlesen 
11.
	iPos = InStr(szNextLine, szSuch) 'Position des Suchtextes feststellen 
12.
	If iPos Then ' Wenn Suchtext vorhanden 
13.
		iStart = iPos + iRelPos 'Starposition der gesuchten Zahl berechnen 
14.
		iEnd = InStr(iStart, szNextLine, Chr(34)) 'schließendes Anführungszeichen suchen 
15.
		If iEnd Then 'wenn gefunden, Zeile verwertbar 
16.
			objDestFile.WriteLine szNextLine 'Zeile in Zieldatei schreiben 
17.
			'Text ab Startposition bis vor Endposition in Zahl umwandeln und aufsummieren 
18.
			lSumme = lSumme + CLng(Mid(szNextLine, iStart, iEnd - iStart)) 
19.
		End If 
20.
	End If 
21.
Loop 
22.
 
23.
objDestFile.WriteLine 'Leerzeile in Zieldatei schreiben 
24.
objDestFile.Write szSuch & CStr(lSumme) 'Summe in Zieldatei schreiben (ohne abschließende Zeilenschaltung) 
25.
objDestFile.Close
Grüße
bastla
Bitte warten ..
Mitglied: cookie
12.09.2007 um 15:07 Uhr
Vielen dank bastla.

wie immer, einfach nur genial

gruss
cookie
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...