Я хочу напечатать конкретный столбец (в этом случае столбец 7) моего файла в научной нотации, тогда как остальные столбцы печатаются как есть.awk printf определенный столбец в файле
Как я могу выборочно использовать printf
только для столбца 7 и только print
для первых 6 столбцов?
Пример ввода:
C 6 12.011 0.51 3.56E-01 4.60E-01 0.458399
CA 6 12.011 -0.15 3.55E-01 2.93E-01 0.291708
CAI 6 12.011 -0.25 3.55E-01 3.05E-01 0.30421
CC 6 12.011 0.62 3.56E-01 2.93E-01 0.291708
желаемый результат:
C 6 12.011 0.51 3.56E-01 4.60E-01 4.58E-01
CA 6 12.011 -0.15 3.55E-01 2.93E-01 2.92E-01
CAI 6 12.011 -0.25 3.55E-01 3.05E-01 3.04E-01
CC 6 12.011 0.62 3.56E-01 2.93E-01 2.92E-01
ли ваши столбцы фиксированной ширины? Всегда ли это последний столбец, который вы хотите изменить? –
awk '{print $ 1, $ 2, $ 3, $ 4, $ 5, $ 6}' input.txt> temp1 awk '{printf "% 4.3e" $ 7}' input.txt> temp2 Я получаю ошибку: awk: (FILENAME = input.txt FNR = 1) со смертельным исходом: не достаточно аргументов, чтобы удовлетворить строку формата \t '% 4.3e0.458399' Я думал, вставит TEMP1 temp2> output.txt Однако, я предпочитаю, если я мог бы сделать все это за один шаг/команда – ruchi
Нет, это не всегда последний столбец, который мне нужно изменить для научной нотации. – ruchi