grep Zahl 0-100% ausschließen | Script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 12:14:45

Hallo,

ich habe ein kleines Script welches mir den Hardware RAID Status überwacht (arcconf getconfig 1).
Leider schlägt das immer an wenn ein geplanter Verify statt findet weil sich natürlich der Status in % von 0-100 verändert.

Code: Alles auswählen

Status of Logical Device                 : Optimal ( Build/Verify with fix : 16 % )
[...]

Code: Alles auswählen

Status of Logical Device                 : Optimal ( Build/Verify with fix : 18 % )
Die Frage ist jetzt wie bekomme ich die Zahlen weg ohne ein evtl. anderen Status nicht mehr
mit zu bekommen?

Jemand eine Idee?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von hikaru » 01.02.2024 12:32:55

Das hier könnte eine Lösung sein:

Code: Alles auswählen

egrep -v 'Status of Logical Device                 : Optimal \( Build/Verify with fix : [0-9]{1,3} % \)'
Voraussetzung: Die Ausgabe der Prozentangabe enthält kein Format-Padding.
Zuletzt geändert von hikaru am 01.02.2024 13:49:22, insgesamt 1-mal geändert.
Grund: pattern korrigiert

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 13:00:53

Noch nicht ganz, das hier liefert gar nichts:

Code: Alles auswählen

egrep -v 'Status of Logical Device                 : Optimal \( Build/Verify with fix : [0-9]{1,3}* % \)'
Sobald ich das "{1,3}*" weg lasse kommt wieder die ganze Zeile.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von hikaru » 01.02.2024 13:59:23

Der Stern hinten war Unsinn, schadete in deinem Beispiel aber auch nicht. Ich habe meinen ersten Beitrag korrigiert.
Unabhängig davon sollte das aber funktionieren.

Meine Testdatei sah so aus (teils kopiert aus deinem Eingangsbeitrag):

Code: Alles auswählen

$ cat test.txt 
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : 16 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 18 % )
1234567890
Das grep-Kommando lieferte dann folgendes Ergebnis, womit ich zufrieden war:

Code: Alles auswählen

$ cat test.txt | egrep -v 'Status of Logical Device                 : Optimal \( Build/Verify with fix : [0-9]{1,3} % \)'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
1234567890
Wie sehen deine Testdaten aus?

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 14:16:48

hikaru hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 13:59:23
$ cat test.txt
qwertzuiop
Status of Logical Device : Optimal ( Build/Verify with fix : 16 % )
Status of Logical Device : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device : Optimal ( Build/Verify with fix : 18 % )
1234567890
Du hast recht, es funktioniert, ich habe nur meine Frage falsch formuliert! :hail:

Ich möchte in meiner Ausgabe die Zeile, aber ohne Zahlen:

Code: Alles auswählen

Status of Logical Device                 : Optimal ( Build/Verify with fix : 16 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 18 % )

Code: Alles auswählen

Status of Logical Device                 : Optimal ( Build/Verify with fix :  % )
Status of Logical Device                 : Optimal ( Build/Verify with fix :  % )
Es wäre auch möglich die Zahlen z.B. durch zwei Buchstaben zu ersetzen:

Code: Alles auswählen

Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Der RAID Verify läuft fast ein Tag und während dieser Zeit bekomme ich alle 15 Minuten eine EMail weil sich natürlich
in meinem diff die Prozentzahl vom Fortschritt ändert...
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von hikaru » 01.02.2024 14:45:18

Wenn du Strings nicht nur matchen, sondern manipulieren willst, dann musst du sed oder awk nutzen, statt grep :

Code: Alles auswählen

$ cat test.txt | sed 's|Status of Logical Device                 : Optimal ( Build/Verify with fix : [0-9]\{1,3\} % )|Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )|'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
1234567890
P.S.: Der Befehl ist nur deshalb so lang, weil ich es für gute Praxis halte, Regex-Pattern so präzise wie möglich zu formulieren. Theoretisch könnte auch das reichen:

Code: Alles auswählen

cat test.txt | sed 's|[0-9]\+|AA|'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
AA
Aber hier sieht man in der letzten Zeile meiner Testdaten schon das Problem: Ein zu unpräzises Pattern führt zu falsch-positiven Matches.
Die praxistaugliche Lösung liegt oft irgendwo in der Mitte:

Code: Alles auswählen

cat test.txt | sed 's|Build/Verify with fix : [0-9]\+ %|Build/Verify with fix : AA %|'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
1234567890

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von heisenberg » 01.02.2024 15:06:32

Man könnte sich das eine oder andere Monitoring Plugin anschauen, das arcconf nutzt.

Das sind mitunter auch Shellscripte.

z. B.
https://exchange.checkmk.com/p/check-aacraid

Die Endung .mkp sind tar - Dateien.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von Meillo » 01.02.2024 15:29:35

hikaru hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 14:45:18

Code: Alles auswählen

$ cat test.txt | sed 's|Status of Logical Device                 : Optimal ( Build/Verify with fix : [0-9]\{1,3\} % )|Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )|'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
1234567890
P.S.: Der Befehl ist nur deshalb so lang, weil ich es für gute Praxis halte, Regex-Pattern so präzise wie möglich zu formulieren. Theoretisch könnte auch das reichen:

Code: Alles auswählen

cat test.txt | sed 's|[0-9]\+|AA|'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
AA
Aber hier sieht man in der letzten Zeile meiner Testdaten schon das Problem: Ein zu unpräzises Pattern führt zu falsch-positiven Matches.
Die praxistaugliche Lösung liegt oft irgendwo in der Mitte:

Code: Alles auswählen

cat test.txt | sed 's|Build/Verify with fix : [0-9]\+ %|Build/Verify with fix : AA %|'
qwertzuiop
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : xy % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : AA % )
1234567890
Das sind wichtige und wertvolle Gedanken.

Man kann das Dilemma dann auch auf diese Art loesen:

Code: Alles auswählen

$ cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s|[0-9]\{1,3\} %|AA %|'
Erst die Zeile genau auswaehlen und darin dann die simple Ersetzung machen.

Das reduziert auch die Dopplung des Textes im Befehl -- es ist also sichergestellt, dass der sonstige Test der Zeile nicht (aus Versehen) veraendert wird.
Zuletzt geändert von Meillo am 01.02.2024 16:36:26, insgesamt 1-mal geändert.
Grund: Befehl gefixt
Use ed once in a while!

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 15:34:18

hikaru hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 14:45:18
Der Befehl ist nur deshalb so lang, weil ich es für gute Praxis halte, Regex-Pattern so präzise wie möglich zu formulieren.
Und er funktioniert perfekt, danke!
Die Länge spielt keine Rolle, kommt ins Script und fertig :wink:
heisenberg hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 15:06:32
Man könnte sich das eine oder andere Monitoring Plugin anschauen, das arcconf nutzt.
Danke für den Hinweis!
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von hikaru » 01.02.2024 15:35:51

Meillo hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 15:29:35
Erst die Zeile genau auswaehlen und darin dann die simple Ersetzung machen.
Danke für den Tipp! So hatte ich sed noch nie betrachtet.

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 15:39:51

Zwei Fragen habe ich noch:

Code: Alles auswählen

[0-9]\{1,3\}
0-9 ist klar, aber was bewirkt {1,3}?

Warum funktioniert das sed nur mit "|" obwohl in der Manpage s/RegAusdr/Ersatz/ steht?

Ich merke mal wieder das mir Basics fehlen... :cry:
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 15:42:20

Meillo hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 15:29:35
Das reduziert auch die Dopplung des Textes im Befehl -- es ist also sichergestellt, dass der sonstige Test der Zeile nicht (aus Versehen) veraendert wird.
Danke @Meillo, dein Beitrag hatte ich erst nach meiner Antwort gesehen.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 16:13:16

slu hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 15:39:51

Code: Alles auswählen

[0-9]\{1,3\}
1 bis 3 stellige Zahlen {1,3}?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von hikaru » 01.02.2024 16:23:16

slu hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 16:13:16
1 bis 3 stellige Zahlen {1,3}?
Ja.

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 16:26:18

Meillo hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 15:29:35

Code: Alles auswählen

$ cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build/Verify with fix :/s|[0-9]\{1,3\} %|AA %|'
Da war noch ein kleiner Fehler drin, vor dem /Verify muss ein Backslash hin:

Code: Alles auswählen

cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s|[0-9]\{1,3\} %|RUN %|'
hikaru hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 16:23:16
slu hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 16:13:16
1 bis 3 stellige Zahlen {1,3}?
Ja.
Was ich gerade auf durch testen bestätigen konnte:

Code: Alles auswählen

cat test.txt
Status of Logical Device                 : Optimal ( Build/Verify with fix : 1 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 10 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 100 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2000 % )
Das Ergebnis:

Code: Alles auswählen

cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s|[0-9]\{1,3\} %|RUN %|'
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2RUN % )
Perfekt!
Nun bekomme ich eine Mail wenn der Verify starte und eine wenn er abgeschlossen wurde, vielen Dank an alle hier mitwirkenden!
Ich denke damit ist eine Spende ans Debianforum fällig :)
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von Meillo » 01.02.2024 16:38:14

slu hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 15:39:51
Ich merke mal wieder das mir Basics fehlen... :cry:
Kein Problem, da kann Abhilfe geschaffen werden ... mit unserem Regexp-Kurs: viewtopic.php?t=183941
;-)
Use ed once in a while!

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von hikaru » 01.02.2024 17:01:31

slu hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 16:26:18

Code: Alles auswählen

cat test.txt
Status of Logical Device                 : Optimal ( Build/Verify with fix : 1 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 10 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 100 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2000 % )
Das Ergebnis:

Code: Alles auswählen

cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s|[0-9]\{1,3\} %|RUN %|'
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2RUN % )
Perfekt!
Nun ja, wie man's nimmt. Wenn da wirklich "2000 %" im Log stünden, dann würde ich das genau so sehen wollen, denn da lief dann offenbar etwas schief. Das war der Grund, warum ich das Pattern als "[0-9]\{1,3\}" (1-3-stellige Zahlen) angegeben habe und nicht als "[0-9]\+" (beliebige Zahlen ab einer Stelle).
Der Fix ist hier recht simpel, einfach das vorhergehende Leerzeichen mit in das Pattern aufnehmen:

Code: Alles auswählen

$ cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s| [0-9]\{1,3\} %| RUN %|'
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2000 % )
Natürlich ist letztendlich auch das unterkomplex, denn es schützt nicht vor unplausiblen dreistelligen Zahlen:

Code: Alles auswählen

$ cat test.txt
Status of Logical Device                 : Optimal ( Build/Verify with fix : 0 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 1 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 10 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 100 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 111 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2000 % )

Code: Alles auswählen

$ cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s| [0-9]\{1,3\} %| RUN %|'
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2000 % )
Auch das kann man abfangen (wobei die Syntax langsam hässlich wird):

Code: Alles auswählen

$ cat test.txt | sed '/Status of Logical Device                 : Optimal ( Build\/Verify with fix :/s# \(100\|[0-9]\{1,2\}\) %# RUN %#'
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : RUN % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 111 % )
Status of Logical Device                 : Optimal ( Build/Verify with fix : 2000 % )
("100" oder ein bis zwei Ziffern zwischen 0 und 9)
Aber irgendwann stellt sich einfach die Frage, wie viel Hirnschmalz und mentale Gesundheit man in ein Regex-Pattern stecken will. ;)

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von Meillo » 01.02.2024 17:22:00

Als kleine Nebenbemerkung: Ausdruecke wie `\+' und `\|' gehoeren eigentlich nicht zu BREs, die sed nutzt. Sie funktionieren zwar in GNU sed, aber nicht in jeder sed-Implementierung. Das sollte man im Hinterkopf behalten.
Use ed once in a while!

slu
Beiträge: 2148
Registriert: 23.02.2005 23:58:47

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von slu » 01.02.2024 17:53:59

hikaru hat geschrieben: ↑ zum Beitrag ↑
01.02.2024 17:01:31
Nun ja, wie man's nimmt. Wenn da wirklich "2000 %" im Log stünden, dann würde ich das genau so sehen wollen, denn da lief dann offenbar etwas schief.
Das wichtigste ist "Optimal" nicht zu filter, denn wenn sich das verändert gibt es ein ernstes Problem mit dem RAID.
Von daher gehe ich jetzt mal das Risiko ein das hier eine Zahl zwischen 0 und 100% stehen kann :wink:
Zusätzlich werden noch die ganzen anderen Werte auf dem RAID ausgelesen, der diff zeigt mir dann schön was sich verändert hat.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von heisenberg » 01.02.2024 19:45:39

Ich habe gerade nochmal das Plugin ausgeführt. Es ist in dem Fall doch ein Python-Script:

Code: Alles auswählen

./check_aacraid

0 Controller_1 - OK Model:Adaptec 5405 Serial:1D3011B21F2 Bios:5.2-0 (18948) Firmware:5.2-0 (18948) Driver:1.2-1 (50983) LDs:0 Status:Optimal
0 Disk_c1p3 - OK DiskID:0,3 Model:WD10EADS-00L Vendor:WDC Status:Online (JBOD)
Die "0" steht hier für "Alles OK". Warnung wäre "1", Kritisch "2" und Unbekannt "3".

In dem Fall habe ich hier nur den Controller und eine Platte im JBOD-Modus. (für ein ZFS-VDEV).

Das aktuelle Script ist dort:
https://github.com/biodec/check_aacraid ... ck_aacraid
Jede Rohheit hat ihren Ursprung in einer Schwäche.

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

Re: grep Zahl 0-100% ausschließen | Script

Beitrag von wanne » 02.02.2024 01:08:59

Weil wir Haarspalter sind:

Code: Alles auswählen

sed -r 's, (100|[1-9]?[0-9]) %,  %,g'
Der erkennt 00 % nicht 100 % und 0 % aber schon. Willst du 00 % haben, muss das ? weg.
Alternativ

Code: Alles auswählen

sed -r 's, (100|[1-9]?[0-9]) %, AA %,g'
Oder wenn du es wirklich nur in der Zeile haben willst:

Code: Alles auswählen

sed -r 's,^(Status of Logical Device                 : Optimal \( Build/Verify with fix : )(100|[1-9]?[0-9]) % \)$,\1 % ),g'
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten