Frage zur Verbesserung eines Bash Kommandos

Gast #5565654
Lesenswert?

Hallo,
Habe folgende Datei
1
********************************
2
*                              *
3
*                              *
4
* timer1: 5           *
5
* start:  enabled          *
6
* timer: 1               *
7
*                              *
8
********************************


Ich möchte nun die einzelnen Werte in der bash anzeigen. Habe folgende 
Befehlszeile "programmiert"
1
cat test | grep "start:" | cut -c 15- | rev | cut -c 7- | rev
Gibt es eine bessere/einfachere Möglichkeit?
Gast #5565713
Lesenswert?

LINUX Anfänger schrieb:
> Hallo,
> Habe folgende Datei
>
>
1
> ********************************
2
> *                              *
3
> *                              *
4
> * timer1: 5           *
5
> * start:  enabled          *
6
> * timer: 1               *
7
> *                              *
8
> ********************************
9
>
>
>
> Ich möchte nun die einzelnen Werte in der bash anzeigen.

Nur "start":
1
$ grep -oP '(?<=start:\s)\s*\w+' test

Alle Werte:
1
$ grep -oP '(?<=[^:]:\s)\s*\w+' test

Gurt-UND-Hosenträger-Angstversion:
1
$ grep -oP '(?<=[rt1]:\s)\s*\w+s\*(?=\s\*)$' test

Anmerkungen:
- Innerhalb der lookbehind und lookahead Gruppen sind (leider) nur 
Muster fixer Länge möglich.
- die Ergebnisse sind ggfs. noch zu "strippen" d.h. leading & trailing 
whitespace noch zu entfernen.

DISCLAIMER: Aus dem Sonnabendschlafrockärmel geschüttelt und nicht 
gerührt und schon gar nicht getestet: so YMMV und die Reifung der 
Bananen ist dem Kunde überlassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren