[gelöst] grep regex = Verzweifelung

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
ascotlx
Beiträge: 3
Registriert: 09.12.2015 01:41:09

[gelöst] grep regex = Verzweifelung

Beitrag von ascotlx » 09.12.2015 02:04:14

Hallo zusammen,
ich bin am verzweifeln und hoffe ihr könnt mir helfen.
ich bekomme als Ergebnis eines Befehls folgenden Ausgabe:

Code: Alles auswählen

ID
10
12
13
2
Software
5
09.02.2015
Nach
Laufwerk
Patchstand
6
09.02.2015
Nach
Laufwerk
Patchstand
7
8
Version:
Soweit so gut. Nun möchte ich aber "nur" die Zeilen haben, die am Anfang der Zeile eine einstellige, zweistellige oder dreistellig Zahl enthalten.
Die Ergebniszeilen dürfen aber KEINE Zahl mit einem Punkt und keine Buchstaben enthalten und hier kommen ich nicht weiter :cry: :?:

Dem gewünschten Ergebnis konnte ich mit folgendem grep näher kommen:

Code: Alles auswählen

egrep "^[0-9]{1,2}"
Ergebnis:

Code: Alles auswählen

10
12
13
2
5
09.02.2015
6
09.02.2015
7
8
... und die Zeilen mit den Punkten (offensichtlich ein Datum, was aber nicht sein muss) bekomme ich nicht weg.
Entweder ist alles weg, oder die einstelligen Zahlen sind weg, aber nicht die Zahlen mit einem Punkt.
Kann mir jemand auf die Sprünge helfen? Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht.

Besten Dank schon mal im voraus.
ascotlx
Zuletzt geändert von ascotlx am 09.12.2015 11:21:23, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: grep regex = Verzweifelung

Beitrag von DeletedUserReAsG » 09.12.2015 02:19:53

Schnell und dreckig würde ich die Ausgabe nochmal durch »grep -v '[0-9]\.'« schicken. Macht alles weg, was min. einen Punkt mit einer Ziffer davor enthält.

tobo
Beiträge: 1991
Registriert: 10.12.2008 10:51:41

Re: grep regex = Verzweifelung

Beitrag von tobo » 09.12.2015 03:02:57

Das was Du beschreibst ist das:

Code: Alles auswählen

grep -E "^[0-9]{1,3}[^a-zA-Z\.]*$"
Ich bin mir allerdings nicht sicher, ob das wirklich das ist, was Du haben willst, denn z.B. "42 42" oder "42??" oder "12345" trifft da auch noch zu!?

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: grep regex = Verzweifelung

Beitrag von wanne » 09.12.2015 06:42:02

Code: Alles auswählen

egrep "^[0-9]{1,2}$"
oder

Code: Alles auswählen

egrep "^[0-9]*$"
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: grep regex = Verzweifelung

Beitrag von hikaru » 09.12.2015 09:21:08

Ich vermute, du suchst das:

Code: Alles auswählen

egrep '^[0-9]{1,3}$'

Benutzeravatar
ascotlx
Beiträge: 3
Registriert: 09.12.2015 01:41:09

Re: grep regex = Verzweifelung

Beitrag von ascotlx » 09.12.2015 10:07:01

:THX:
Wow, danke für die schnellen Antworten und alle funktionieren.

Wobei ich nicht ganz verstehe, warum ich das nicht hinbekommen habe? In vielen Fällen habe ich das $ Zeichen vergessen...
Zusammenfassend wird nun nach Zahlen am Zeilenanfang, entweder 1-3 Ziffern, bis zum Zeilenende gesucht?

Code: Alles auswählen

egrep '^[0-9]{1,3}$'
egrep "^[0-9]{1,2}$"
egrep "^[0-9]*$"
In diesem Fall werden Buchstaben und der "böse" Punkt bei der Suche explizit ausgeschlossen?

Code: Alles auswählen

grep -E "^[0-9]{1,3}[^a-zA-Z\.]*$"
Schnell und dreckig :D sehr gut ... hier werden die Zahlen, die von einem Punkt gefolgt werden rausgeschmissen, oder ?

Code: Alles auswählen

grep -v '[0-9]\.'
Zusammenfassend ... ich muss nochmal damit auseinandersetzen. :facepalm:
Alle Lösungen funktionieren :THX: :THX:
Besten Dank

Benutzeravatar
ascotlx
Beiträge: 3
Registriert: 09.12.2015 01:41:09

[gelöst] Re: grep regex = Verzweifelung

Beitrag von ascotlx » 09.12.2015 10:08:56

... [gelöst] vergessen..

Antworten