mdadm отказывается добавлять второй идентичный диск в массив

perl -pe 's/".*?"/do{$a = $&; $a =~ s: +:,:g; $a}/ge;'

По сути, это просто глобальная замена регулярного выражения s / regex / replace / g . Регулярное выражение ". *?" , он соответствует каждой подстроке, которая начинается с " и заканчивается следующим за ним " . Сложные части:

  • Замена - это не строка, а вычисляемое выражение. (Это значение модификатора e после g .)
  • Выражение которая снова вычисляется, является глобальной заменой регулярного выражения s: regex: replace: g , которая заменяет любую непустую последовательность пробелов запятой. (Мы не можем использовать тот же разделитель, что и во внешней замене, поэтому мы используем : вместо / .)
  • Чтобы выполнить замену внутреннего регулярного выражения, мы должны назначить совпавшую подстроку внешней замены $ & некоторой другой переменной $ a , а затем выполнить внутреннюю замену на $ a и, наконец, выведите $ a .

В достаточно свежей версии Perl можно избежать присвоения вспомогательной переменной. Используя модификатор r , внутреннюю замену можно выполнить непосредственно на копии совпавшей подстроки $ & (спасибо Стефану Шазеласу):

perl -pe 's/".*?"/$&=~s: +:,:gr/ge;'
2
09.06.2015, 00:16
1 ответ

На диске есть HPA. У меня тот же диск, и я удалил HPA, успешно восстановив потерянные сектора, сделав оба диска идентичными. См.https://superuser.com/a/642765

# hdparm -N /dev/sdx
# hdparm -N p976773168 /dev/sdx
1
11.12.2020, 22:16

Теги

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