最近私は十分で十分だと判断しました-私は流暢にgrepを使用することを学ぶつもりでした。3時間も経ちましたが、私はすでにこのおもちゃの問題に困惑しています。
現在RAID5アレイを同期しています/proc/mdstat
。その進行状況はを読むことで監視できます。の出力をcat /proc/mdstat
以下に示します。
$ 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>
おもしろいことに、私はリアルタイムでwatch
監視/proc/mdstat
し、出力をgrepにパイプし、推定残り時間のみを表示するために使用すると思いました。
私のアプローチは次のとおりです:
watch cat /proc/mdstat | grep finish=\d+\.\d | grep \d+\.\d
なぜこれが出力を生成しなかったのか私は困惑しています。実際、最初のgrep式は、Regex101で機能しているように見えても、出力を生成しません。
何が悪いのですか?
\d
内部で正規表現を使用して常に引用することはできませんgrep
。「grep」正規表現構文を参照してください。