Filtern von txt dateien mit find
suchen nach id= und der darauf folgende zahlen wert soll ausgegeben werden...genauso wie sich in der selbe zeile zu der id die dazugehörige prozentzahl befindet... diese soll ebenfalls ausgegeben werden...
hallo,
also ich habe eine txt datei.... in der steht viel viel text... aber ich brauch nur ein bruchteil von dem text....
die datei sieht ca so aus...
ich möchte jetzt nach id= suchen und mir den zahlenwert der dahinter steht ausgeben lassen... und in der selbe zeile befindet sich auch noch der prozent wert zu dieser id ich benötige beides..... mein problem hierbei ist folgendes... wenn ich find nehme kann ich mir nur die kompletten zeilen ausgeben lassen in denen der string id= gefunden wurde... ich benötige aber lediglich die zahlenkette nach id= und aus der selben zeile noch den wert (x) der zwischen >x.xx%< steht
die ausgabe sollte in etwa dann so aussehen.....
usw.
wäre toll wenn mir jemand helfen könnte
hallo,
also ich habe eine txt datei.... in der steht viel viel text... aber ich brauch nur ein bruchteil von dem text....
die datei sieht ca so aus...
texttexttext "id=XXXX" (unbestimmterzahlenwert) texttexttext ">X.XX%<"(unbestimmterprozenzwert) texttexttext
texttexttext "id=XXXX" (unbestimmterzahlenwert) texttexttext ">X.XX%<"(unbestimmterprozenzwert) texttexttext
texttexttext "id=XXXX" (unbestimmterzahlenwert) texttexttext ">X.XX%<"(unbestimmterprozenzwert) texttexttext
ich möchte jetzt nach id= suchen und mir den zahlenwert der dahinter steht ausgeben lassen... und in der selbe zeile befindet sich auch noch der prozent wert zu dieser id ich benötige beides..... mein problem hierbei ist folgendes... wenn ich find nehme kann ich mir nur die kompletten zeilen ausgeben lassen in denen der string id= gefunden wurde... ich benötige aber lediglich die zahlenkette nach id= und aus der selben zeile noch den wert (x) der zwischen >x.xx%< steht
die ausgabe sollte in etwa dann so aussehen.....
id=1234 1.23%
id=1236 1.45%
id=1239 5.34%
wäre toll wenn mir jemand helfen könnte
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 38612
Url: https://administrator.de/contentid/38612
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
10 Kommentare
Neuester Kommentar
Moin Pr0vieH,
willkommen im Forum.
Ist sicherlich abhängig von den Tools, die man/frau normalerweiser verwendet, ob es per CMD-Line, per Batch oder mit VBS/JS am schnellsten geht.
Ich als Bätcher würde es natürlich mit einer FOR /F..IN..DO-Anweisung lösen.
Also sinngemäß (am CMD-Prompt):
...wenn die Zeilen in der xx.log so aussehen:
texttexttext "id=XXXX" texttexttext "X.XX%" texttexttext
Gruß
Biber
willkommen im Forum.
Ist sicherlich abhängig von den Tools, die man/frau normalerweiser verwendet, ob es per CMD-Line, per Batch oder mit VBS/JS am schnellsten geht.
Ich als Bätcher würde es natürlich mit einer FOR /F..IN..DO-Anweisung lösen.
Also sinngemäß (am CMD-Prompt):
>For /f "tokens=2,3,5" %i in ( 'find """id=XXXX""" xx.log ') do @echo [Output] %i=%j %k
[Output]"id=XXXX" "X.XX%"
texttexttext "id=XXXX" texttexttext "X.XX%" texttexttext
Gruß
Biber
Man/frau nennt mich auch "Biber, den Geduldigen"...
Wenn Deine Textdatei "Pr0vieHsein.txt" so aussieht:
...dann erzeugt am CMD-Prompt ...den darunter stehenden Output
und
Variante mit FIND:
Kommen wir der Sache näher?
Wenn Deine Textdatei "Pr0vieHsein.txt" so aussieht:
texttexttext "id=1234" (unbestimmterzahlenwert) texttexttext align="right">0.23%<"(unbestimmterprozenzwert) texttexttext
texttexttext "id=4321" (unbestimmterzahlenwert) texttexttext align="right">6.30%<"(unbestimmterprozenzwert) texttexttext
texttexttext "id=6543" (unbestimmterzahlenwert) texttexttext align="right">3.84%<"(unbestimmterprozenzwert) texttexttext
>for /f "tokens=2,6 delims=<> " %a in (Pr0vieHsein.txt) do @echo %~a %b
id=1234 0.23%
id=4321 6.30%
id=6543 3.84%
>for /f "tokens=2,6 delims=<> " %a in ('findstr "id=1234" Pr0vieHsein.txt') do @echo %~a %b
id=1234 0.23%
Variante mit FIND:
>for /f "skip=2 tokens=2,6 delims=<> " %a in ('find "id=1234" Pr0vieHsein.txt') do @echo %~a %b
id=1234 0.23%
greets Pr0vieH aka aNNa wAndLanG ;)
Unglaublich, was manche Eltern ihren Kidz mit der Namensgebung antun. *kopfschüttel*Bei uns in der Straße lebte auch eine Familie Poppen, die tauften ihre Tochter Wilma.
Aber da ich hier als Mod ohnehin schon ganz ausgelastet bin, habe ich gar keinen Ehrgeiz, auch noch zusätzlich witzig sein zu wollen und mir mit aNNa wAndLanG's oder W1Lm4 P0pp3N's funkensprühende Dialoge zu schreiben.
Außerdem bin ich ohnehin absolut humorlos.
Back To Thread.
Du kannst es gern mit Perl machen - kann ich nicht bei helfen.
Im Batch bzw. an der CMD-Line würde ich zuerst alle HTML-Tags als je ein Token betrachten (also "Delims=<>"). Dann sind z.B. das 3te und 17. Token die relevanten.
Das dritte Token wird noch einmal zerlegt mit "DELIMS==?", also Fragezeichen und Gleichheitszeichen.
>for /F "eol=; Tokens=3,17 delims=<>" %a in (Pr0vieHsein.txt) do @for /f "tokens=3-4 delims==?" %i in ("%a") do echo [^"%i=%j] && echo [%b]
####Output:
["witem=15261"]
[0.03%]
<a href="/db/item.html?witem=15261">
>for /F "eol=; Tokens=3,17 delims=<>" %a in (Pr0vieHsein.txt) do @for /f "tokens=2 delims=?" %i in ("%a") do echo [^"%i] && echo [%b]
####Output ebenfalls:
["witem=15261"]
[0.03%]
Hope That Helps
Biber aka B1B3R
Moin Pr0vieH,
um mehr als einfache "J"/"N"-Antworten oder bestenfalls einzelne Worte "auszuführen", ist diese ECHO...PIPE-Mimik schlecht geeignet.
Suche mal über Forumssuche nach AutoIt. Das ist da besser geeignet.
Diesen Beitrag setze ich jetzt mal auf "Gelöst" und "Geschlossen", denn von der ursprünglichen Fragestellung "Filtern mit Find" sind wir mittlerweile Lichtjahre entfernt.
Schönen Abend und stressarmen Wochenbeginn
Biber
um mehr als einfache "J"/"N"-Antworten oder bestenfalls einzelne Worte "auszuführen", ist diese ECHO...PIPE-Mimik schlecht geeignet.
Suche mal über Forumssuche nach AutoIt. Das ist da besser geeignet.
Diesen Beitrag setze ich jetzt mal auf "Gelöst" und "Geschlossen", denn von der ursprünglichen Fragestellung "Filtern mit Find" sind wir mittlerweile Lichtjahre entfernt.
Schönen Abend und stressarmen Wochenbeginn
Biber