В Awk вы можете использовать " *" для создания динамической строки формата printf.
Если вы уже знаете длину, вы можете передать длину поля для первого столбца с помощью -v.
awk -vcol1=3 'BEGIN{FS="|"}{for(i=1;i<=NF;i++){if(i==1)printf "%*-s%s",col1,$i,FS;else if(i!=NF)printf "%s%s",$i,FS;else printf "%s\n",$i;};}' test.txt
Обратите внимание, :если вы не знаете, какова длина первого столбца, вы можете сохранить значения в массиве, а затем найти максимальную длину столбца по пути и распечатать все это в блоке END.
Что-то переопределяет ваш LANG=en_US.UTF-8
и устанавливает вместо него LANG=cic_US.UTF-8
.
Возможно, запускgrep -r cic_US.UTF-8 /etc $HOME/.??* 2>/dev/null
(от имени пользователя с проблемой )может показать, где устанавливается неправильное значение LANG
?
Также проверьте «Системные настройки» -> «Региональные настройки» в KDE, так как это, по-видимому, может использоваться для установки комбинаций языковых стандартов, которые могут поддерживаться KDE, но не обязательно поддерживаться остальной системой.