Awk для вывода на fortran

#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)}'