#awk #fortran
#awk #fortran
Вопрос:
извините за, вероятно, слишком простой вопрос, но я новичок в этом.
У меня есть вывод FORTRAN, который выглядит примерно так:
xxxx 3.54D 05 yyyy
xxxx 3.89D 08 yyyy
xxxx 2.45D-04 yyyy
...
...
Я хотел бы напечатать логарифм второго столбца, но awk не распознает эту форму научной нотации. Есть предложения?
Спасибо!
Комментарии:
1. 3.54D 05 соответствует 354000?
2. Естественный логарифм или база 10? Кроме того, вам вообще нужны оставшиеся столбцы или только журнал col 2?
3. Да, действительно, 3,54D 05 соответствует 354000. Мне вообще не нужны остальные столбцы. Для этого база не имеет большого значения, мне нужна база 10, но для этого я просто использую log (A) / log (10). Спасибо!
Ответ №1:
У меня нет моего Mac, чтобы проверить это, но в интересах того, чтобы вы начали, я попробую с самого начала…
awk '{x=$2; sub(/D/,"e",x); print log(x)}' file
Надеюсь, это приведет к преобразованию столбца 2 в переменную x
, а затем заменит D
на e
, получит журнал и распечатает его … затем снова может быть написано «отказ в строке 1, потому что Марк невежествен»….
Комментарии:
1. @user3746441 Может быть сокращен
awk '{sub(/D/,"e");print log($2)}'