Я розумію, як використовувати функцію printf awk, але не хочу вказувати кожне поле.
Наприклад, припустимо, що це мій файл:
c1|c2|c3|c4|c5
c6|c7|c8|c9|c10
c11|c12|c13|c14|c15
Я хочу відформатувати його так, щоб першим полем кожного запису була ширина c11 - найдовша комірка в першому полі:
c1 |c2|c3|c4|c5
c6 |c7|c8|c9|c10
c11|c12|c13|c14|c15
Я розумію, що міг би вказати:
awk -F"|" '{printf "%-3s%s%s%s%s\n", $1, $2, $3, $4, $5}' file > newfile
Припустимо, я знаю, якою я хочу бути шириною першого стовпця, але я НЕ знаю, скільки полів у файлі. В основному я хочу зробити щось на кшталт:
... '{printf "%-3s|", $1}'
... а потім надрукуйте решту полів у оригінальному форматі.
sed 's/|/'' '' '' |/;s/\(...\) */\1/'
(сюди додаються додаткові цитати, щоб вставити ці 3 пробіли, коли коментарі SE