sed problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Neon03
Beiträge: 90
Registriert: 13.03.2006 16:15:15

sed problem

Beitrag von Neon03 » 04.12.2006 18:29:31

Hallo also ich habe folgende datei

Code: Alles auswählen

libnotify-0..2-15
suseRegister-.0-63.9
libzypp-zmd-backend-.1.1.0-42.53
rug-.1.1.0-18.27
apparmor-parser-.0-21.5
perl-spamassassin-.1.3-3.2
yast-printer-2.13.19-1.3
gnutls-2bit-1.2.10-13.5
powersave-libs-2bit-0.12.20-0.3
gnome-vfs-32bit-2.12.2-58.11
Mesa-.4.2-19.7
flash-player-.0.68.0-1.2
gtk-devel-2.8.10-39.13
control-center-2.12.2-62.15
kdebase-SuSE-10.1-58.11
gsl-debuginfo-.7-14
libmusicbrainz-.1.2-12.5
bind-libs-.3.2-17.7
openssh-askpass-.2p1-18.9
libcdio-devel-0.6-16
perl-GD-Graphd-0.63-18
perl-SGMLS-.03ii-395
perl-Tk-debuginfo-04.027-15
jetz moechte ich mit sed ab dem letzten zeichen '-' alles loeschen, jedoch nur wenn hinter dem zeichen '-' ein punkt mit zahlen stehen, ein punkt mit zahlen und buchstaben stehen oder nur zahlen stehen.

also ich will das kommand absetzen und dann sollen folgende stings wie folgt aussehen :D

vor dem kommando

Code: Alles auswählen

perl-SGMLS-.03ii-395
perl-Tk-debuginfo-04.027-15[
nach dem kommando

Code: Alles auswählen

perl-SGMLS
perl-Tk-debuginfo
vielen dank :D

fueri
Beiträge: 9
Registriert: 20.04.2004 11:46:00

Beitrag von fueri » 04.12.2006 20:05:37

Hallo,

vermutlich etwas umstaendlich und eventuell nicht ganz das was du willst, da er auch abschneidet, wenn nach dem '-' Zahlen und Punkte kommen :) Hab es zweistufig gemacht. Bin nicht sicher ob es in einem geht und noch lesbar ist :)

ls -1| sed -r 's/-[0-9,.,-]+\s*$//' | sed -r 's/-\.[0-9]+[a-z,A-Z]*[0-9]*\s*$//'

Gruss
fueri

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 04.12.2006 22:15:28

Hallo Neon03,

mein Tipp wäre, alles nach einem Punkt zu löschen:

Code: Alles auswählen

 sed 's/\..*$//g' datei
und danach das zu löschen was noch "nutzlos" übrigbleibt :wink:

Gruß fuzzy

Neon03
Beiträge: 90
Registriert: 13.03.2006 16:15:15

aw

Beitrag von Neon03 » 05.12.2006 16:29:59

also vielen dank nochmal

bei mir siehts jetz so aus

sed -r 's/\..*//g; s/\-[0-9]*$//g'

Antworten