我最近认为足够就够了-我将流利地学习使用grep。已经三个小时了,这个玩具问题已经困扰我了。
我目前正在同步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'正则表达式语法。