Я беру хороший ответ @mattdm, чтобы показать вам практические шаги, чтобы сделать то, что вам нужно.
Выводdf
/dev/mapper/fedora-usr 2,9G 2,7G 42M 99% /usr
показывает, что вы используете LVM (Logical Volume Manager ),и что каталог /usr
смонтирован на логическом томе LV ()с именем usr
в группе томов VG ()с именем fedora
.
Поэтому вам нужно сделать это:
1 )Добавьте к машине новый (физический или виртуальный )диск, чтобы обеспечить дополнительное дисковое пространство; назовем его /dev/sdc
.
2 )Создать новый раздел/dev/sdc1
(типа 0x8E = Linux LVM )на новом диске:
fdisk /dev/sdc
(Я предполагаю, что вы знаете, как это сделать, поэтому я опускаю детали :нажмите n , p , 1 , и т. д.)
Это не обязательно, но рекомендуется, потому что если у вас есть другие Операционные системы, обращающиеся к диску, могут не распознать LVM и увидеть все неразмеченный диск как пустой.
3 )Инициализировать новый раздел как физический том:
pvcreate /dev/sdc1
4 )Добавить вновь созданный PV в существующую группу томов:
vgextend fedora /dev/sdc1
5 )Расширить логический том usr
-, а также базовую файловую систему -, чтобы он занимал все свободное пространство:
lvresize -l+100%FREE --resizefs /dev/mapper/fedora-usr
Ваш раздел /usr
теперь больше любого размера раздела /dev/sdc
.
Вы пометили свой вопрос тегом /linux, так что вы, вероятно, используете GNU sed
. Затем вы можете использовать опцию -z
для обработки всего файла в одном буфере и использовать:
sed -z 's/\n+//g'
Это означает, что s
заменить каждый разрыв строки (\n
), за которым следует знак +
, ничем, что означает соединение строки, начинающейся с +
, с предыдущей, отбрасывая +
.
Я пришел с этим вawk
:
awk 'BEGIN {RS=""}{gsub(/\n\+/,"", $0); print $0}' file
Выход:
******************
.WER aaa bbb ccc ddd eee fff ggg hhh
******************
.SDF zzz xxx yyy iii kkk lll
******************
.XCV uuu vvv ggg hhh qqq rrr ttt jjj
******************
Использование любого awk в любой оболочке на каждом компьютере UNIX и чтение в память только одной строки за раз (другие решения, опубликованные до сих пор, считывают весь входной файл в память сразу):
$ awk '{printf "%s%s", (sub(/^\+/,"") ? "" : ors), $0; ors=ORS} END{print ""}' file
******************
.WER aaa bbb ccc ddd eee fff ggg hhh
******************
.SDF zzz xxx yyy iii kkk lll
******************
.XCV uuu vvv ggg hhh qqq rrr ttt jjj
******************