Пересматривают интервал столбцов

Запустите live-CD (мне нравится grml , но есть много других) и проверьте файловую систему на / dev / sda2 с помощью fsck.

1
11.08.2018, 21:23
2 ответа

awk с использованием printf+%f

Попробуйте это. Используя printf с измененной шириной (, например. %2d, поле заполняется по мере необходимости ). Точно так же % 2.8fформатирует здесь число с плавающей запятой.

$ awk '{printf "%2d%7d%7d % 2.8f  % 2.7f  % 2.7f\n",$1,$2,$3,$4,$5,$6}' file
 1      1      1  0.02484183   57.2400000   24.6000000
 2      1      2 -0.16091000   56.5200000   24.5600000
 3      1      1  0.02484183   55.5700000   24.4900000
 4      1      1  0.02484183   56.4400000   25.5100000
 5      1      2  0.08638400   56.8900000   23.3300000
 6      1      1  0.01376475   57.8900000   23.5200000
 7      1      1  0.01376475   57.0600000   22.5200000
 8      1      2  0.17612200   55.8800000   22.9700000
 9      1      1  0.02042900   56.1600000   22.0400000
10      1      2 -0.34768900   55.9300000   24.0700000
11      1      1  0.07439383   55.5100000   25.0200000
12      1      1  0.07439383   55.4600000   23.7100000
13      1      1  0.07439383   57.0000000   24.2400000
14      1      2  0.02151800   54.4400000   22.8700000
15      1      1  0.08793975   54.5000000   22.4000000
$

Попробуйте онлайн!

awk с помощью printf+tabs

Подход tab (\t )также предлагает сделать код намного чище, но он не обеспечивает выравнивания, как вы просите.

$ awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}' file
1       1       1       0.02484183      57.2400000      24.6000000
2       1       2       -0.16091000     56.5200000      24.5600000
3       1       1       0.02484183      55.5700000      24.4900000
4       1       1       0.02484183      56.4400000      25.5100000
5       1       2       0.08638400      56.8900000      23.3300000
6       1       1       0.01376475      57.8900000      23.5200000
7       1       1       0.01376475      57.0600000      22.5200000
8       1       2       0.17612200      55.8800000      22.9700000
9       1       1       0.02042900      56.1600000      22.0400000
10      1       2       -0.34768900     55.9300000      24.0700000

Версия без кода, столбец

Опять же, это не совсем тот результат, который вы запрашиваете, но его легко получить, используя column.

$ column -t file
1   1  1  0.02484183   57.2400000  24.6000000
2   1  2  -0.16091000  56.5200000  24.5600000
3   1  1  0.02484183   55.5700000  24.4900000
4   1  1  0.02484183   56.4400000  25.5100000
5   1  2  0.08638400   56.8900000  23.3300000
6   1  1  0.01376475   57.8900000  23.5200000
7   1  1  0.01376475   57.0600000  22.5200000
8   1  2  0.17612200   55.8800000  22.9700000
9   1  1  0.02042900   56.1600000  22.0400000
10  1  2  -0.34768900  55.9300000  24.0700000
11  1  1  0.07439383   55.5100000  25.0200000
12  1  1  0.07439383   55.4600000  23.7100000
13  1  1  0.07439383   57.0000000  24.2400000
14  1  2  0.02151800   54.4400000  22.8700000
15  1  1  0.08793975   54.5000000  22.4000000
$
4
27.01.2020, 23:15

Считайте файл с помощью awkи выведите значения с помощью printf.

awk '{ printf ("%2d\t%s\t%s\t%11s\t%s\t%s\n", $1, $2, $3, $4, $5, $6); }' file

Измените строку формата printf по своему усмотрению.

1
27.01.2020, 23:15

Теги

Похожие вопросы