PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sed - löschen bis Zahlen kommen



Jörn
23-07-2010, 16:14
Hey, ich habe ein Textfile mit lauter Zeilen wie:



bla bla 203.200
test dksdd203
hier kommt die maus<§)=3000.000.33


und ich möchte mit sed einfach nur:


203.200
203
3000.000.33


bekommen, wie kann ich das machen?

msi
23-07-2010, 16:52
perl -lne 'print "$&" while /[\d.]+/g' inputdatei.txt

oder ich würde eher das vorschlagen, da dann nur ein Punkt in einer Zahl enthalten sein kann, würde aber 3000.000.33 auf spilitten in 3000.00 und 33:

perl -lne 'print "$&" while /\d+\.?\d*/g' inputdatei.txt

Jörn
23-07-2010, 18:06
Hey, danke für deine Antwort, weisste du auch wie ich das mit "sed" machen kann, Perl kann ich an dieser Stelle leider nicht einsetzen.

msi
23-07-2010, 18:12
Hey, danke für deine Antwort, weisste du auch wie ich das mit "sed" machen kann, Perl kann ich an dieser Stelle leider nicht einsetzen.

sed und awk sind veraltet. Perl ist außerdem viel weiter verbreitet. Auf was für einem System ist heutzutage kein Perl?!

undefined
23-07-2010, 18:34
Der Satz kommt mir Irgendwie bekannt (http://www.mrunix.de/forums/showthread.php?p=283204#post283204) vor ;) :D

msi
23-07-2010, 19:07
Der Satz kommt mir Irgendwie bekannt (http://www.mrunix.de/forums/showthread.php?p=283204#post283204) vor ;) :D

hehe hab mich auch gefragt ob jemand sich erinnert.

peschmae
24-07-2010, 11:35
Sowas:



echo "bla bla 203.200
test dksdd203
hier kommt die maus<§)=3000.000.33" | sed 's#^[^0-9-]*##'
203.200
203
3000.000.33


MfG Peschmä