Я согласен с @QIS.
Есть несколько причин, по которым sed вам не подойдет.
Одна из них заключается в том, что по умолчанию sed
обрабатывает свой ввод построчно, и по этой причине sed
никогда не увидит новую строку как часть строки. По умолчанию это разделитель между строками .
Другое дело, что, хотя GNU sed
реализует '\n'
представление новой строки, BSDsed
(версия для OSX )этого не делает.
Только для будущих пользователей GNU sed
, которые могут прочитать ваш вопрос, GNU sed
можно указать обрабатывать входной файл как список строк с разделителями NUL -, используя опцию -z
. Предполагая, что ваш ввод не содержит байтов NUL, это может быть вариантом для пользователей GNU sed
:
$ pbpaste | sed -z 's/\n/ /g'
Одним из тривиальных (и не -рекомендуемых )методов является использование преимущества того факта, что когда echo
получает символы новой строки без кавычек в результате подстановки команд, он заменяет их пробелами. Кроме того, echo
преобразует несколько пробелов (или новых строк )в один пробел. Таким образом, вполне вероятно, что это сработает и для вас :
echo $(pbpaste)
Лучший способ сделать это:
Например, если вы хотите создать зеркало двух дисков Western Digital с серийными номерами WD-WMC1S5694795
и WD-WMC1S5688675
, создайте разделы GPT одинакового размера -на каждом диске и пометьте раздел как-то так data-WD-WMC1S5694795
. ] и data-WD-WMC1S5688675
соответственно. Обязательно правильно пометьте их, иначе потраченное время будет бесполезным. К счастью, эти серийные номера уже включают начальный WD-
, поэтому производитель уже закодирован. Включение сокращенного производителя в этикетку просто защищает от отдаленно возможной ситуации, когда у вас будет два диска с одинаковыми серийными номерами от разных производителей. Маловероятно, поэтому по своему усмотрению кодируйте производителя в метке раздела.
Это даст вам /dev
записей в разделе /dev/disk/by-partlabel/
, которые вы затем сможете использовать для создания своего пула:
# zpool create tank mirror /dev/disk/by-partlabel/data-WD-WMC1S5694795 \
/dev/disk/by-partlabel/data-WD-WMC1S5688675
# zpool status tank
pool: tank
state: ONLINE
scan: scrub repaired 0B in 23h36m with 0 errors on Wed Dec 1 16:00:38 2021
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
data-WD-WMC1S5694795 ONLINE 0 0 0
data-WD-WMC1S5688675 ONLINE 0 0 0
errors: No known data errors
Теперь, когда один из дисков выйдет из строя, вы будете точно знать, какой из них следует заменить, поскольку серийный номер, -читаемый человеком, появляется на внешней стороне диска.