Baru-baru ini saya memutuskan bahwa cukup sudah cukup - saya akan belajar menggunakan grep dengan lancar. Sudah tiga jam dan aku sudah bingung dengan masalah mainan ini.
Saat ini saya sedang menyinkronkan array RAID5, yang perkembangannya dapat dimonitor dengan membaca /proc/mdstat
. Output cat /proc/mdstat
ditunjukkan di bawah ini.
$ 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>
Untuk bersenang-senang, saya pikir saya akan gunakan watch
untuk memonitor /proc/mdstat
secara real time, menyalurkan output ke grep, dan hanya menunjukkan perkiraan waktu yang tersisa.
Pendekatan saya adalah sebagai berikut:
watch cat /proc/mdstat | grep finish=\d+\.\d | grep \d+\.\d
Saya bingung mengapa ini tidak menghasilkan output. Bahkan, ekspresi grep pertama tidak menghasilkan output, meskipun tampaknya berfungsi pada Regex101 .
Apa yang saya lakukan salah?
\d
dan selalu mengutip regex di dalamnyagrep
. Lihat 'grep' sintaks ekspresi reguler .