Гуманно интерпретированный ответ:
Is there a way to convert ExFAT to UDF [in-place]?
Нет. Обычно процесс преобразования одной файловой системы в совершенно другую файловую систему является рискованным и обременительным, и инструменты для этого создаются только в исключительных обстоятельствах, когда разработчики пытаются автоматически убедить людей перейти на новую файловую систему (думаю, ext *-> BTRFS или Microsoft FAT32 -> NTFS ).
Педантичный ответ на точное оригинальное название:
Is there a way to convert ExFAT to UDF?
Да:
Очевидно, что все, что связано с удалением данных, вы делаете на свой страх и риск, убедитесь, что у вас есть работающие резервные копии и т. д.
Следующий подход с двойным -проходом должен форматировать поля до фиксированной ширины столбца:
awk -F':\\|' -v OFS='|' 'NR==FNR{for (i=1;i<=NF;i++) {if (length($i)>max[i]) max[i]=length($i);} next;}
{for (i=1;i<=NF;i++) $i=sprintf("%-*s",max[i],$i)}1' output.txt output.txt
Это обработаетoutput.txt
дважды (, поэтому вы должны указать его дважды в качестве аргумента дляawk
).
FNR
, счетчик -строки файла -, равен NR
, общему счетчику строк ), мы просто ищем максимальную длину каждую запись поля (, перебирая все поля от $1
до$NF
)и сохраняя их в массиве max
. sprintf
до фиксированной ширины, определенной из массива max
максимальной ширины полей. :|
последовательность символов (с надлежащим экранированием, поскольку многосимвольные -символьные разделители входных полей обрабатываются как регулярные выражения, а |
имеет там особое значение ). Разделитель выходных полей будет установлен в один |
.Результат для вашего примера
2020.11.07-22.3.31 INFO - |FSNAME|AVAILABLE|AVAILABILITY
2020.11.07-22.3.31 INFO - |/opt |yes |1.4GB
2020.11.07-22.3.31 INFO - |/data |yes |30GB