2番目の列で数学演算を実行します。

2番目の列で数学演算を実行します。

元のファイルが次のようになっているとします。

            N O D E   O U T P U T

THE FOLLOWING TABLE IS PRINTED FOR NODES BELONGING TO NODE SET NSET_OUTPUT
   NODE FOOT-   NT11     
        NOTE

      3       20.00     
     11       20.00     
   1003       23.75     
   1011       23.75     
   2003       27.52     
   2011       27.52     
   3003       31.30     
   3011       31.30     
   4003       35.08     

2番目のファイルを生成する必要がありますが、2番目の列の値に100を掛けるだけです。このファイルをどのように入手できますか?

ベストアンサー1

数値データブロックのフィールド幅と形式を維持すると仮定すると、次のようなものが提案されます。

awk '
  $1 ~ /[0-9]+/ && $2 ~ /[-+0-9.]+/ {
    $0 = sprintf("%6d%12.2f", $1, 100*$2)
  } 1
' file

前任者。

$ awk '$1 ~ /[0-9]+/ && $2 ~ /[-+0-9.]+/ {$0 = sprintf("%6d%12.2f", $1, 100*$2)} 1' file
            N O D E   O U T P U T

THE FOLLOWING TABLE IS PRINTED FOR NODES BELONGING TO NODE SET NSET_OUTPUT
   NODE FOOT-   NT11     
        NOTE

     3     2000.00
    11     2000.00
  1003     2375.00
  1011     2375.00
  2003     2752.00
  2011     2752.00
  3003     3130.00
  3011     3130.00
  4003     3508.00

おすすめ記事