awk
можно сделать это с помощью диапазонов и флага, например:
awk '/enum fixedsample/,/} FIXEDNAME/ { e=1 } e && /^#ifdef/,/^#endif/ { next } { e=0; print }' foo.hpp
Версия sed
даже не нуждается в флаге, просто вложите диапазоны, поэтому каждый #ifdef... #endif
диапазон внутри диапазона enum... }
d
удаляется:
sed '/enum fixedsample/,/} FIXEDNAME/{; /^#ifdef/,/^#endif/d; }' foo.hpp
В текущей версии следует использовать более точные шаблоны, чтобы снизить вероятность ложных срабатываний.
Если вы действительно не выполнили resize2fs /dev/mapper/nvmeVg-var 44G
или эквивалентную операцию перед запуском lvreduce -L44G /dev/mapper/nvmeVg-var
, то вы определенно повредили свою файловую систему, отрезав ей хвост.
А так как вы уже расширили другую файловую систему,откат к предыдущей конфигурации с использованием lvmcfgrestore
и стандартных резервных копий в /etc/lvm/backup
также может быть не лучшим вариантом, поскольку он, скорее всего, таким же образом сломает ваш /home
.
Восстановление вашего /var
из недавней резервной копии было бы отличным решением. Но я полагаю, у вас этого нет, не так ли?
Возможно, вам придется запустить e2fsck -C0 -f /dev/mapper/nvmeVg-var
и принять большое страшное сообщение об ошибке о том, что файловая система имеет больший размер, чем базовое устройство. Затем он, надеюсь, завершит процесс ампутации хвоста, который вы непреднамеренно выполнили, и установит размер файловой системы равным значению, соответствующему текущему размеру LV.