Forum: PC-Programmierung Frage zur Verbesserung eines Bash Kommandos


von LINUX Anfänger (Gast)


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?

von Jemand (Gast)


Lesenswert?

Bei cut kannst du direkt das gewünschte Feld angeben.
1
cat test | grep "start:" | cut -d' ' -f4

von Rolf M. (rmagnus)


Lesenswert?

LINUX Anfänger schrieb:
> cat test | grep

Google mal nach "useless use of cat".

grep "start:" test | cut -d' ' -f4

von Kommandozeile vor dem Frühstück für Alle! (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.