Восстановление пула ZFS после случайного форматирования диска

awk по умолчанию разделяет записи на поля на основе непрерывных последовательностей пробелов и игнорирует начальные конечные пробелы. Поскольку ваше первое «поле» иногда пусто, для awk его не существует. Учитывая это, есть несколько способов вывести столбец NAME, самый простой из которых — считать поля с конца записи, а не с ее начала :

.
$ awk '{print $NF}' file
PROVIDER
Imported
Imported
Imported
$
$ awk '{print $(NF-1)}' file
NAME
test-cluster
prod-cluster
dev-cluster
$
$ awk '{print $(NF-2)}' file
STATE
active
active
active
$
$ awk '{print $(NF-3)}' file
ID
abcd
efgh
xyzd
$
$ awk '{print (NF>4 ? $(NF-4) : "")}' file
CURRENT
*


$

Вам нужно выполнить некоторые математические операции с последним, чтобы $(NF-4)не приводило к печати $0, когда NF равно 4. Вы можете вычислить предполагаемое количество полей вместо жесткого -кодирования 4 путем подсчета сколько полей в строке заголовка:

$ awk 'NR==1{max=NF-1} {print (NF>max ? $(NF-max) : "")}' file
CURRENT
*


$
1
30.08.2021, 00:37
1 ответ
zpool scrub pool01 

Должно быть достаточно, чтобы проверить контрольные суммы и восстановить их в правильном блоке в пуле

2
30.08.2021, 04:41

Теги

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