Добавить пробел перед позицией в файле

В этом случае ваша файловая система находится на LV (Логическом томе ), который находится на разделе. Если вы расширите раздел, ваш LV не будет расширен.

Пожалуйста, запустите эти команды:

pvresize <device name>< --Это сообщит физическому тому, что раздел, на котором он находится, был расширен.

И:

lvextend -l +100%FREE /dev/mapper/fedora-root <Physical Volume name>< --Это расширит LV.

resize2fs /dev/mapper/fedora-root

PS :Узнать имя физического тома можно с помощью командыpvs

Спасибо @Dani _l за предложения по редактированию.

1
08.11.2019, 06:47
3 ответа

Сawk:

awk 'substr($0,16,1) != " " { $0=substr($0,0,15)" "substr($0,16) }1' file

Если строка в позиции 16 не является пробелом, изменить текущую строку на префикс, пробел и суффикс. Затем напечатайте текущую строку (1).

2
27.01.2020, 23:12

С GNU sedв расширенном режиме:

sed -Ee 's/^(.{15})([^ ])/\1 \2/' file

С GNU sedдругим методом:

sed -e '
   h         ; # hold a copy in case we need it
   s/./\n&/16; # place a marker before the 16-char in the current line
   /\n /g    ; # in case the marker sees a space to its right, revert the changes
   s/\n/ /   ; # in case not then remove the marker
' file

СPerl:

perl -lpe '$_ = "@{[unpack q[A15A*]]}" if index($_," ",15) != 15' file

Результаты:

7017556626 TEST BSAB 20191108 TEST123 3333 1111 BSAB 11
7007760674 TEST CHAS 20191108 TEST123 4444 5555 CHAS 22
7017556626 TEST      20191108 TEST123 3333 1111 CHAS 33
7017556626 TEST SSEQ 20191108 TEST123 2222 7777 BSAB 44
7007760674 TEST CHAS 20191108 TEST123 1111 0000      55
3
27.01.2020, 23:12

Подобно sed , вы можете использовать скриптовый редакторed:

printf '%s\n' '1,$s/^\(.\{15\}\)\([^ ]\)/\1 \2/' 'wq' | ed -s file

Это отправляет две команды, разделенные новой строкой -, в ed в "тихом" режиме:

  1. 1,$s/^\(.\{15\}\)\([^ ]\)/\1 \2/--в каждой строке(1,$— это диапазон от строки #1 до последней строки ), выполнить поиск и замену. Поиск с начала строки(^)любых 15 символов, за которыми следует символ пробела, отличный от -; если это найдено, сгруппируйте первые 15 символов как подвыражение #1 и символ без пробела -как подвыражение #2. Замените этот текст подвыражением #1, пробелом, затем подвыражением #2 --, по сути, поставить пробел после 15-го символа, если следующий не является пробелом.
  2. wq--записать файл обратно на диск и выйтиed
3
27.01.2020, 23:12

Теги

Похожие вопросы