Ich habe kürzlich entschieden, dass genug genug ist - ich würde lernen, grep fließend zu verwenden. Es sind alle drei Stunden vergangen und ich bin bereits verblüfft über dieses Spielzeugproblem.
Ich synchronisiere derzeit ein RAID5-Array, dessen Fortschritt durch Lesen überwacht werden kann /proc/mdstat
. Die Ausgabe von cat /proc/mdstat
ist unten gezeigt.
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sda4[0] sdb4[1] sdc4[2]
5858765824 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
[=============>.......] resync = 67.3% (1972073120/2929382912) finish=205.7min speed=77537K/sec
md0 : active raid5 sda3[0] sdb3[1] sdc3[2]
998400 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
Zum Spaß dachte ich, ich würde verwenden watch
, um /proc/mdstat
in Echtzeit zu überwachen , die Ausgabe in grep weiterzuleiten und nur die geschätzte verbleibende Zeit anzuzeigen.
Mein Ansatz ist wie folgt:
watch cat /proc/mdstat | grep finish=\d+\.\d | grep \d+\.\d
Ich bin ratlos, warum dies keine Ausgabe hervorbrachte. Tatsächlich erzeugt der erste grep-Ausdruck keine Ausgabe, obwohl er auf Regex101 zu funktionieren scheint .
Was mache ich falsch?
\d
regulären Ausdruck verwenden und immer zitierengrep
. Siehe Syntax für reguläre Ausdrücke 'grep' .