Если вы посмотрите на вывод как vgs
, так и vgdisplay
, вы не увидите, что у вас примерно 913,51 ГБ свободного PE. Это физические экстенты, поэтому ваши группы томов LVM (VG) не имеют этих физических экстентов, назначенных ни на что. Это свободное место.
Output of vgdisplay:
--- Volume group ---
VG Name vg00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 925.51 GiB
PE Size 4.00 MiB
Total PE 236931
Alloc PE / Size 3072 / 12.00 GiB
Free PE / Size 233859 / 913.51 GiB
Итак, я бы пришел к выводу, что вам нужно назначить эти физические экстенты. Самый простой способ расширить один из логических томов (LV) в этой группе VG для выделения всего свободного пространства - это следующая команда, например:
$ sudo lvextend -l+233859 /dev/vg00/home
Где мы добавляем ( +233859
) из PE к LV / dev / vg00 / home
.
Это просто, просто используйте:
sed -Ee 's/(.*[0-9])(.*)/\1 <s>\2 <\/s>/'
В вашем случае:
cat file | sed -Ee 's/(.*[0-9])(.*)/\1 <s>\2 <\/s>/' | less
Но лучше использовать имя файла после команды sed, старайтесь избегать канала, т.е.:
sed -Ee 's/(.*[0-9])(.*)/\1 <s> \2 <\/s>/' file
Для редактирования файла напрямую с помощью опции i
.
Если я правильно интерпретирую вашу цель, попробуйте:
sed 's| | <s> |; s|$|</s>|'
Например, начиная с вашего файла:
$ cat text.ign
TEXT1910\text0001 “ My hand is broken, ” said the sailor, “ and smoked the pipe. ”
И, выполнив нашу команду:
$ sed 's| | <s> |; s|$|</s>|' text.ign
TEXT1910\text0001 <s> “ My hand is broken, ” said the sailor, “ and smoked the pipe. ” </s>
Как это работает:
s| | <s> |
заменяет первый пробел на <s>
.
Sed позволяет использовать любой символ в качестве разделителя в команде подстановки. Здесь мы используем |
вместо традиционного /
.
s|$|</s>|
добавляет </s>
в конец строки.
Поскольку мы используем |
в качестве разделителя, нет необходимости экранировать обратную косую черту в </s>
.
Из вопроса имеем:
$ sed -e 's/\(.*\) \(.*\)/ <s> \1 <\/s>\2/' text.ign
<s> TEXT1910\text0001 “ My hand is broken, ” said the sailor, “ and smoked the pipe. ” </s>
Проблема здесь в том, что регулярные выражения sed соответствуют самому длинному совпадению. Это означает, что первый \(.*\)
соответствует всему от начала строки до последнего пробела в строке. Другой \(.*\)
соответствует чему-либо после этого последнего пробела.
Поскольку строка в примере заканчивается пробелом, это означает, что \(.*\)
соответствует всей строке, а другой \(.*\)
не соответствует ничему. Таким образом, <s>
помещается перед всей строкой, а </s>
— после нее.
$ awk '{ $1 = $1 " <s>"; $(NF+1) = "</s>"; print }' file
TEXT1910\text0001 <s> “ My hand is broken, ” said the sailor, “ and smoked the pipe. ” </s>
Это просто добавляет пробел и открывающий тег <s>
после первого поля с разделителями -, а затем закрывающий тег </s>
в качестве нового поля в конце. Затем он печатает измененную строку.
Обратите внимание, что при этом несколько пробелов в данных будут объединены в один пробел.
Вам нужно, чтобы первая двойная кавычка до последней была заключена в html-подобную конструкцию, что выполнимо следующим образом:
sed -e 's|".*"|<s> & </s>|' inputfile