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