Hi Leute
Bin gerade etwas am rumprobieren.
Hab auch schon gegooglet aber bin noch nicht auf das gestossen was mir wirklich weiterhelfen kann.
Folgendes:
Ich habe einen gleitkommawert als Prozentangabe in einem File.
Bsp.: "ysdvuösf:=?=dfgblö 35.4% lsfgsdöu"
Aus diesem string muss ich zuverlaessig den gleitkommawert extrahieren sowie als auch die CharPosition des Prozenzeichens sowie auch die Position des beginns der Gleitkommazahl(also der 3 von 35,4).
Ist deswegen wichtig da mehrere Prozentangaben in einer Zeile vorkommen koennen.
Bsp.: "blah blahblahblah =?=blibla 35.4% bliblablubll blah 44,7% drfghdfaghdah 67.8% blahblahblah blah bliblablub"
Hintergrund:
Die Strings(Prozentangaben etc.) werden von dem Programm das sie erzeugt in ein mkfifo geleitet und von dort in ein file geschrieben aus dem ich sie rausziehen muss.
Experimentiere gerade mit "cat floatdigitextract.out | tr -cd [:digit:]" herum aber das extrahiert lediglich ganzzahlen aus Text.
Hat wer einen sinnvollen denkanstoss fuer mich?
Gruss
Ratten
Zahl aus File extrahieren
Re: Zahl aus File extrahieren
Code: Alles auswählen
perl -ne 'while ($_ =~ /(\d+(\.\d+)?%)/g) {print "$1: $-[0] $+[0]\n"}' filename
Re: Zahl aus File extrahieren
Vielleicht so mit "awk":
Code: Alles auswählen
awk '{ gsub(/[^0-9,.%]/," "); for (i=1;i<=length();i++) { j=substr($0,i,1); z[i]=j;if (j == " ") {l=i;}; if (j == "%") {for (k=l+1;k<=i;k++) {printf z[k]}print ";" l+1 }}}' floatdigitextract.out
Re: Zahl aus File extrahieren
Hi Leute
Danke fuer eure Antworten
Das Perl-script von Liffi funktioniert absolut perfekt!
Vielen vielen Dank dafuer!!!
Das awk script von uname werd ich mir nochmals genauer anschauen muessen.
Es funktioniert nur auf einem "gereinigten" file da in der floatdigitextract.out auch eine menge ASCII-Sonderzeichen sind aber das hatte ich ja in meinem bsp. oben nicht angegeben.
Bsp:
"M^B^Ablahblahblah | 0.1%"
Bsp als Hex:
0000000 4d5e 425e 415e 6c62 6861 6c62 6861 6c62
0000010 6861 7c20 3020 312e 2025 000a
000001b
Fuer was die Steuerzeichen genau stehen weiss ich nicht 100% aber die ausgabe fder daten bei einem cat findet in einer Zeile statt ohne das ein Zeilenumbruch stattfindet...
...nochmals vielen Dank fuer die antworten!
Gruss
Ratten
Danke fuer eure Antworten
Das Perl-script von Liffi funktioniert absolut perfekt!
Vielen vielen Dank dafuer!!!
Das awk script von uname werd ich mir nochmals genauer anschauen muessen.
Es funktioniert nur auf einem "gereinigten" file da in der floatdigitextract.out auch eine menge ASCII-Sonderzeichen sind aber das hatte ich ja in meinem bsp. oben nicht angegeben.
Bsp:
"M^B^Ablahblahblah | 0.1%"
Bsp als Hex:
0000000 4d5e 425e 415e 6c62 6861 6c62 6861 6c62
0000010 6861 7c20 3020 312e 2025 000a
000001b
Fuer was die Steuerzeichen genau stehen weiss ich nicht 100% aber die ausgabe fder daten bei einem cat findet in einer Zeile statt ohne das ein Zeilenumbruch stattfindet...
...nochmals vielen Dank fuer die antworten!
Gruss
Ratten