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

Findstr - noch ein Syntax- Problem

Frage Entwicklung Batch & Shell

Mitglied: leknilk0815

leknilk0815 (Level 3) - Jetzt verbinden

28.04.2013, aktualisiert 18:29 Uhr, 2118 Aufrufe, 5 Kommentare

wie lösche ich in der Zeilenmitte jeder Zeile einen Text?

Servus,
noch ein kleines Problem (leider nicht für mich...):
In LOG- Dateien stehen folgende Zeilen (der Aufbau ist immer gleich, nur die Werte unterscheiden sich):

2012/06/01 13:26:46 G-Sensor( 0.00, 0.88,-0.06) N40 05.923 E019 45.084 0km/h

Da ich diese Dateien schon vorher in einer Batch mit "findstr" nach Duplikaten absuchen und bereinigen lasse, was dank der Forumshilfe schon funktioniert, wäre es am einfachsten, wenn man die Textteile, die ich nicht brauchen kann, in derselben Batch mittels findstr entfernen könnte.
Ich bräuchte einen Befehl, der in jeder Zeile die Zeichen ab Pos. 24 die nächsten 28 Zeichen löscht.
Das selbe nochmal vom Zeilenende 8 Zeichen, so daß danach die Einträge für "G_Sensor(xxxx)" und "km/h" entfernt sind.


findstr /r /c:"%Zeile:~24,28%" - funktioniert natürlich nicht, Beispiel habe ich auch keines gefunden bzw. wieder mal übersehen...

Ich hoffe auf Nachsicht und bedanke mich schonmal vorab!

Gruß - Toni

P.S.:
Hier noch die Batch, die ich aus dem Forum zusammengeklaut und angepasst habe.
Nicht schön, ich weiß, aber sie tut das, was ich brauche.
Wenn ich jetzt noch die überflüssigen Daten mit eurer Hilfe rausbekomme, wäre ich glücklich...
01.
@echo off & setlocal  
02.
set "Datei=13265400.LOG" 
03.
set "Bak=.bak" 
04.
set "AusgabeDatei=bereinigt-1.log" 
05.
set "Duplikate=Duplikate.txt" 
06.
set /a LineNo=0  
07.
 
08.
move "%Datei%" "%Datei%%Bak%" 
09.
 
10.
copy nul "%Duplikate%">nul 
11.
 
12.
for /f "usebackq delims=" %%i in ("%Datei%%Bak%") do set "Zeile=%%i" & call :ProcessLine 
13.
 
14.
set "Datei=bereinigt-1.log" 
15.
set "Bak=.bak" 
16.
set "AusgabeDatei=bereinigt-2.log" 
17.
set "Duplikate=Duplikate.txt" 
18.
set /a LineNo=0  
19.
 
20.
move "%Datei%" "%Datei%%Bak%" 
21.
copy nul "%Duplikate%">nul 
22.
 
23.
for /f "usebackq delims=" %%i in ("%Datei%%Bak%") do set "Zeile=%%i" & call :ProcessLine2 
24.
 
25.
del "%Datei%%Bak%"  
26.
del "%Duplikate%" 
27.
 
28.
goto :eof  
29.
 
30.
:ProcessLine  
31.
set /a LineNo+=1  
32.
 
33.
echo Validiere Zeile %LineNo% ...  
34.
 
35.
findstr /b /c:"%Zeile:~,19%" "%AusgabeDatei%">nul && >>"%Duplikate%" echo %Zeile% || >>"%AusgabeDatei%" echo %Zeile% 
36.
goto :eof 
37.
 
38.
:ProcessLine2 
39.
set /a LineNo+=1  
40.
echo Validiere Zeile %LineNo% ...  
41.
findstr /e /c:"%Zeile:~-30%" "%AusgabeDatei%">nul && >>"%Duplikate%" echo %Zeile% || >>"%AusgabeDatei%" echo %Zeile% 
42.
goto :eof


Mitglied: Endoro
28.04.2013, aktualisiert um 18:55 Uhr
Hallo leknilk0815,

das geht so:
01.
@echo off&setlocal 
02.
set "string=2012/06/01 13:26:46 G-Sensor( 0.00, 0.88,-0.06) N40 05.923 E019 45.084 0km/h" 
03.
set "string=%string:~0,24%%string:~52,-8%" 
04.
echo %string%
Output:
2012/06/01 13:26:46 G-Se05.923 E019 45.0
Gruss!
Bitte warten ..
Mitglied: bastla
28.04.2013 um 18:58 Uhr
... und lässt sich so in den bestehenden Batch einbauen:
01.
:ProcessLine2 
02.
set /a LineNo+=1  
03.
echo Validiere Zeile %LineNo% ... 
04.
set "Reduziert=%Zeile:~,23%%Zeile:~51,-8%" 
05.
findstr /e /c:"%Zeile:~-30%" "%AusgabeDatei%">nul && >>"%Duplikate%" echo %Zeile% || >>"%AusgabeDatei%" echo %Reduziert% 
06.
goto :eof
- hinsichtlich der genauen Positionen (23/24, 51/52) musst Du Dir das selbst ansehen ...

Grüße
bastla
Bitte warten ..
Mitglied: leknilk0815
28.04.2013 um 19:54 Uhr
...das flutscht ja wie am Schnürchen!
Eingebaut, ein bisschen rumjongliert - passt.

...ich trau es mir fast nicht zu sagen...:
wenn man jetzt noch was einbauen könnte, das jeweils an 11,20 und 33 Stelle in jeder Zeile ein Komma einsetzt wäre die CSV- Datei fertig und ich bräuchte sie nicht noch in Excel bearbeiten.
Hintergrund ist, daß ich per GPS eine Strecke von 2x 1700km nach Albanien aufgezeichnet habe und die Strecke über Google Maps darstellen will (bzw. an OpenStreetView geben, falls die damit was anfangen können). Da ich aber pro Sekunde 10 GPS- Datensätze habe, muss das "etwas" eingedampft werden. Excel scheitert da mit 65000 Zeilen kläglich, ich auch...
Zum Eindampfen muss ich dann noch was basteln, daß die Log- Dateien per Script/Batch automatisch abgearbeitet werden, da es insgesamt etwa 250 Dateien mit je 800KB sind.
Die Konvertierung in GoogleMaps funkt schon mit den bearbeiteten Daten.
Bitte warten ..
Mitglied: bastla
28.04.2013 um 20:04 Uhr
Hallo leknilk0815!

Das Prinzip für das Zerlegen / Zusammensetzen sollte doch eigentlich schon klar sein - anyhow:
set "Reduziert=%Reduziert:~,10%,%Reduziert:~11,8%,%Reduziert:~20,10%,%Reduziert:~31%"
nach Zeile 4 einfügen ...

Grüße
bastla
Bitte warten ..
Mitglied: leknilk0815
28.04.2013 um 20:14 Uhr
Zitat von bastla:
Hallo leknilk0815!

Das Prinzip für das Zerlegen / Zusammensetzen sollte doch eigentlich schon klar sein -

...prinzipiell schon, aber Du hast das Wörtchen "langsam" vergessen - ich werd' langsam alt... (und bin nun doch schon über 10 Jahre aus dem Admin- Job raus)
Und - dann war da heute noch ein schöner Crash an der Kiste meiner Frau, weil Nokia zu dumm ist, die NokiaSuite so zu programmieren, daß die Kiste nicht abschaltet, wenn die Suite startet. Das hat mich "nebenbei" beschäftigt. Nach mehreren Systemwiederherstellungen gings dann irgendwann...

Vielen Dank Dir und Endoro für die Hilfe und Geduld,

Gruß - Toni
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Python
Problem mit Python und imaplib2

Frage von meinsm zum Thema Python ...

Windows 7
gelöst Windows 7 Umzug zum neuen PC (SATA-Problem) (7)

Frage von MaxMoritz6 zum Thema Windows 7 ...

Batch & Shell
Problem mit Funktion und Combobox (7)

Frage von Druide83 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...

Windows Server
Probleme mit Client Software Zugriff auf Windows Server 2012 (8)

Frage von it-kolli zum Thema Windows Server ...

Router & Routing
Cisco887VAW -VPN NAT-Freigabe (8)

Frage von Serial90 zum Thema Router & Routing ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...