ฉันเพิ่งตัดสินใจว่าเพียงพอก็พอ - ฉันจะเรียนรู้การใช้ 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
และอ้างถึง regex ภายในgrep
เสมอ ดู'grep' ไวยากรณ์แสดงออกปกติ