spa*_*wil 0 unix linux awk for-loop if-statement
我有一些数据,每行都有一系列值,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
最终数字达到小于10的值,此时我想删除该行中的所有剩余数字.
到目前为止我有这个,但它返回了几个错误.
awk '{for (i=1;i++)do{if ($i > 10.0 ) print $i ; next ; else ; exit}}' input > output
Run Code Online (Sandbox Code Playgroud)
我能做错什么?有没有更好的方法来执行这项任务?
试试这一行:
awk '{for(i=1;i<=NF;i++)if($i>10)printf "%s ",$i;else break;print ""}' file
Run Code Online (Sandbox Code Playgroud)
测试一个例子:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
265 次 |
最近记录: |