0

次のように、各行に一連の値を持つデータがあります。

49.01024263     49.13389087     49.38177387  (more numbers...)
42.71585143     43.48711477     44.25625756  (ect..)
43.18826160     43.15332580     43.13094893
30.69076014     28.74489096     26.85725970

最終的に数値は 10 未満の値に達します。その時点で、その行の残りの数値をすべて削除したいと思います。

これまでのところ、これはありますが、いくつかのエラーが返されます。

awk '{for (i=1;i++)do{if ($i > 10.0 ) print $i ; next ; else ; exit}}' input > output

私は何が間違っているのでしょうか?このタスクを実行するためのより良い方法はありますか?

4

1 に答える 1

5

この行を試してください:

awk '{for(i=1;i<=NF;i++)if($i>10)printf "%s ",$i;else break;print  ""}' file

例でテストします:

kent$  cat f
30 20 15 9 8
50 40 30 20 7 2000
100 200 300 400 5 444

kent$  awk '{for(i=1;i<=NF;i++)if($i>10)printf "%s ",$i;else break;print  ""}' f
30 20 15 
50 40 30 20 
100 200 300 400
于 2013-08-22T09:14:53.130 に答える