Я использую эту команду:
awk 'NR>1 {print $1" "$2}' fort.75 > newfort.75
и получая вывод как
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
Но желаемый о/п есть
7 -2.2964292555E+000
8 -2.3013363831E+000
9 -2.3071951989E+000
10 -2.3136811351E+000
11 -2.3207311925E+000
Значения в первом поле должны быть отформатированы так, чтобы они все имели одинаковую ширину. Кроме того, второе поле должно начинаться в том же столбце в каждой строке.
решение1
Вы, возможно, имеете в виду, что хотели бы выводить в столбцах (хотя в вашем примере данные также отличаются). Если так, попробуйте это:
awk 'NR>1 {print $1 "\t" $2}' fort.75 > newfort.75
Это разделит ваш вывод символом TAB \t
.
Другая возможность — использовать printf
вариант, предложенный Арчемаром:
awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75
где первый столбец отформатирован (в данном случае) до ширины в 4 символа — отрегулируйте по желанию. Пространство заполнено пробелом " " (без каламбура) и не используется TAB. Однако числа с плавающей точкой также переформатируются, поэтому проверьте, подходит ли это вам. Если нет, обрабатывайте второй столбец как строку:
awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75