Я хотел бы напечатать данные в фиксированном столбце. Я имею в виду столбец должен быть как в таблице. Я использовал printf. Входные данные:

To find information use the search box on the top right corner of the screen, or categorically browse the Wiki using the Documentation topic links provided below.

Find something you would like to add or edit? The Getting started section (below) gives contributors a few pointers on how to start editing articles.

Both official documentation as well as community-contributed contents can be found on the Wiki. Official documents (created by the Gentoo Documentation Team) are located in the Gentoo Project name space. 

AWK:

{
for(i=1;i<=5;i++){
printf "%20s",$i
if (i==5){print "\n"}}
}

Результат

          To                find         information                 use                 the



        Find           something                 you               would                like



        Both            official       documentation                  as                well

Слева и под строкой с колонками много места. Есть другой способ показать это?

1 ответ1

0
awk -v numlines=$( wc -l t | awk '{print $1}' ) '{ if (NF>0) { for (i=1;i<=5;i++) printf("%-20s ",$i) ; if (NR != numlines) { print "" } } }' inputfile

Часть 'numlines = $(') помещает количество строк во входном файле в переменную, доступную для awk, которая называется numlines. «NF> 0» гарантирует, что пустые строки игнорируются. 'printf(% - 20s') обеспечивает выравнивание полей по левому краю и ширину в 20 символов. 'NR!= numlines 'печатает перевод строки за исключением конца файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .