Как преобразовать файл Unix с фиксированной шириной в файл с разделителями вертикальной черты с использованием порядкового номера столбца и длины поля

В Linux у символических ссылок нет отдельных разрешений; учитываются разрешения для целевого файла и содержащего его каталога. Поскольку содержащий каталог доступен для записи только пользователю root, только root может создавать или удалять там символические ссылки. Целевые файлы, по-видимому, также доступны для записи только пользователю root, что защищает их содержимое.

-2
27.10.2021, 11:20
1 ответ

С GNU awk

gawk -v OFS='|' -v FIELDWIDTHS="3 10 2 8" '{$1=$1; print}' file
001|0000000377|9U|20210203
002|0000000423|8U|20210203

Трюк $1=$1заставляет awk перезаписывать запись, используя разделитель полей вывода.


Если вам нужно что-то более переносимое, Perl есть везде:

perl -lne 'print join "|", (/^(.{3})(.{10})(.{2})(.{8})/)' file
2
27.10.2021, 13:10

Теги

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