10行から20行までの3番目(2番目)列に定数値を追加したいと思います。行う方法?このコードを試してみましたが、うまく動作しているようです。それは私に同じ出力ファイルを与えます。誰かがなぜこれがうまくいくのかを説明できますか?
awk '{if(NR>9) $3=$3+1; print $0}' <file_input > file_output
この場合、awkを使用するよりも優れた解決策があると思いますか?教えてください。ありがとうございます。みんなに頑張ってください。
これはinput_fileのヘッダーです
SCAN U=3
1.0
+7.2621642310 +0.0000000000 +0.0000000000
+0.0000000000 +7.4947599620 +0.0000000000
-0.4702406680 +0.0000000000 +50.5797763000
O W
56 20
Selective
Cartesian
+6.9271068928 +7.2623406786 33.3906 T T T
...次のように続行すると、予想される結果は次のとおりです。
SCAN U=3
1.0
+7.2621642310 +0.0000000000 +0.0000000000
+0.0000000000 +7.4947599620 +0.0000000000
-0.4702406680 +0.0000000000 +50.5797763000
O W
56 20
Selective
Cartesian
+6.9271068928 +8.2623406786 34.3906 T T T
そして、演算結果の小数点以下の精度はどのように設定しますか?
ベストアンサー1
私はそれを知っています
awk 'NR>9 && NR<21{
printf "%s %+.10f %.4f %s %s %s\n",$1,1+$2,1+$3,$4,$5,$6;
next ; }
{print}'
どこ
printf
フォーマットのため%+.10f
最高の精度を誇る10個のフロートがあります。+- 固定数のフィールドの使用
- 一行で書くこともできます。読み取り用に区分しました。
場合によっては、locale
プレフィックスを追加する必要があります。LANG=C
例えば
LANG=C awk '...'
私のフランス地域の回線は
+6.9271068928 +8,0000000000 34,0000 T T T