Не используйте вкладки для интервалов, поскольку это полностью зависит от капризов вашего терминала.
Определите, какое наибольшее имя может быть, и используйте printf
с указателем формата %-50s
(ширина 50 символов, выравнивание по левому краю) для вашего имени согласно следующей расшифровке:
$ echo '1 pax X
2 paxdiablo_with_a_very_long_name Y' | awk '{printf "%3d %-40s %s\n",$1,$2,$3}'
1 pax X
2 paxdiablo_with_a_very_long_name Y
Или, ближе к вашим требованиям:
$ echo '102234 James_Mckenzie 21 M
102233 Jim_Reil 24 M
102235 Alan_Lightbrighter 19 M' | awk '
{printf "number : %d\nname : %-20s age : %d\nsex : %s\n",$1,$2,$3,$4}'
number : 102234
name : James_Mckenzie age : 21
sex : M
number : 102233
name : Jim_Reil age : 24
sex : M
number : 102235
name : Alan_Lightbrighter age : 19
sex : M
Очевидно, что 50
и 20
являются примерами - вы должны выбрать размер, который соответствует вашим потребностям. При необходимости вы можете даже просмотреть файл на первом проходе, чтобы определить наибольшее имя, а затем использовать для форматирования строку формата, созданную из этого во втором проходе, но это, вероятно, излишне.