как изменить соответствия к регулярному выражению с sed или другим инструментом?

Вам не о чем беспокоиться. Данные в томе не будут перекрываться с метаданными. Иначе было бы очень сложно справиться! Например, так будет выглядеть каждый из ваших дисков (без масштабирования):

[--------------------- sda ------------------------]
[---][------------------ sda1 ---------------------]
     [---][----------------------------------------]
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one copy of the data in /dev/md0
     ^^^^ superblock
^^^^ partition table

Таблица разделов не содержится в разделе, а метаданные RAID не содержатся внутри тома RAID. Когда вы помещаете содержимое в том RAID, это содержимое будет занимать часть, не занятую метаданными. Никаких особых договоренностей делать не нужно.

1
07.03.2015, 02:16
1 ответ

Вы почти у цели, попробуйте следующее:

sudo sed 's/,\([0-9]\{1,2\}\)/,\1\)/g' filename

Здесь в дополнение к вашей команде я только что добавил \ {1,2 \} , которое соответствует предыдущему регулярному выражению от одного до двух раз, то есть от одного до двух раз.

\ ([0-9] \ {1,2 \} \) объяснил:

  • [0-9] будет соответствовать одной цифре от 0 до 9
  • {1,2} будет соответствовать предыдущему регулярному выражению от одного до максимум двух раз. Итак, одно совпадение является обязательным, а второе - необязательным (как вы хотите)
  • () создаст группу регулярных выражений, чтобы мы могли ссылаться на нее позже.
  • Также обратите внимание, что мы использовали символ '\' перед всем расширенным синтаксисом регулярных выражений, чтобы они не обрабатывались буквально. Мы могли бы использовать переключатель -r (расширенное регулярное выражение) с gnu sed , в этом случае мы могли бы просто написать:

     sudo sed -r 's /, ([0 -9] {1,2}) /, \ 1 \) / g 'filename 
     

РЕДАКТИРОВАТЬ : если вы хотите сопоставить любое количество цифр (минимум одну) после запятой, вы можете сделать :

sudo sed 's/,\([0-9]\{1,\}\)/,\1\)/g' filename

или проще:

sudo sed 's/,\([0-9]\+\)/,\1\)/g' filename
1
27.01.2020, 23:51

Теги

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