Вы можете использовать оператор диапазона sed для решения своего сценария, но перед этим убедитесь, что тег и антитег в одних и тех же строках обрабатываются. Также не будут обрабатываться несколько тегов в одной строке.
sed -e '
s/^[[:blank:]]*//
\|<instruction>.*</instruction>|b
\|<instruction>|,\|</instruction>|!b
H;\|</instruction>|!d
s/.*//;x;s/\n[[:blank:]]*//g;s/^\n//
' input_xml_lookalike_file
Это может быть связано с нехваткой места на диске, особенно с тем, что некоторые файловые системы не позволяют обычному (пользователю без полномочий root )использовать все доступное дисковое пространство. Часть зарезервирована для uid=0, чтобы предотвратить ситуацию, когда заполнение пользователем всего диска приводит к сбою системных процессов из-за нехватки места.
Итак, это всего лишь одно предположение.
Другое дело, что это было просто совпадение, и что-то не так произошло независимо от того, что вы делали с vim. Зависание процесса может означать, что они не могут выйти из режима ожидания ввода-вывода. Проверьте, смонтирована ли файловая система для чтения -и записи. В некоторых аварийных ситуациях ядро заставит ФС переключиться только на чтение -.
И последнее, но не менее важное: в зависимости от используемой файловой системы вы все еще можете видеть много свободного места в ГБ, хотя свободных i -узлов не осталось. В большинстве случаев вы получите ту же ошибку «диск переполнен», но вы не увидите ее в df
, пока не запустите df -i
.