Использование вами \s
в регулярном выражении означает, что выражение может потреблять новые строки. Я недостаточно знаком с тем, как -v
реализован в pcregrep, чтобы понять, почему это не инверсия, но я почти уверен, что причина именно в этом.
Если вы измените свой файл на:
apple
banana starts matching
this line should match
this too
and this
mango
pomelo
Тогда даже без -v
совпадение выглядит не так, как вы задумали.
$ pcregrep -M 'banana.*\n(\s.*\n)*' fruits.txt
banana starts matching
this line should match
this too
and this
mango
pomelo
Если действительно должен совпадать только пробел в начале строки, я предлагаю заменить \s
на один или несколько пробелов " +"
.
Когда я изменяю регулярное выражение на 'banana.*\n( +.*\n)*'
, оно соответствует (как обычному, так и обратному )способом, который я считаю более правильным. Возможно, используйте [ \t]+
, если также разрешены вкладки.
Я понял, что могу освободить немного больше свободного места, уменьшив количество виртуальных томов, по которым распределялся том home64, вызвав команду running pvmove
с PV, из которых нужно переместиться, и два. Это, а также еще 6 ТБ, которые у меня были в наличии, а также 8 ТБ со сменного диска, оставили мне достаточно места для восстановления LV с помощью lvchange --syncaction repair /dev/prole/home
.
Вот как это выглядит сейчас:
sudo lvs -a -o name,segtype,devices
WARNING: Not using lvmetad because a repair command was run.
LV Type Devices
home64 raid1 home64_rimage_0(0),home64_rimage_1(0)
[home64_rimage_0] linear /dev/sdf(1)
[home64_rimage_0] linear /dev/sda(0)
[home64_rimage_0] linear /dev/sdc2(0)
[home64_rimage_1] linear /dev/sdg(1)
[home64_rimage_1] linear /dev/sdi(0)
[home64_rimage_1] linear /dev/sdb(3842)
[home64_rimage_1] linear /dev/sdd(1335820)
[home64_rmeta_0] linear /dev/sdf(0)
[home64_rmeta_1] linear /dev/sdg(0)
root raid1 root_rimage_0(0),root_rimage_1(0)
[root_rimage_0] linear /dev/sdd(1810605)
[root_rimage_1] linear /dev/sdb(1)
[root_rmeta_0] linear /dev/sdd(856646)
[root_rmeta_1] linear /dev/sdb(0)
var raid1 var_rimage_0(0),var_rimage_1(0)
[var_rimage_0] linear /dev/sdd(0)
[var_rimage_1] linear /dev/sdb(2050)
[var_rmeta_0] linear /dev/sdd(1812653)
[var_rmeta_1] linear /dev/sdb(2049)
Состояние здоровья:
sudo lvs -o name,lv_health_status
WARNING: Not using lvmetad because a repair command was run.
LV Health
home64
root
var