Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 打印$i除非$i小于10。使用awk或其他方式_Linux_Unix_If Statement_For Loop_Awk - Fatal编程技术网

Linux 打印$i除非$i小于10。使用awk或其他方式

Linux 打印$i除非$i小于10。使用awk或其他方式,linux,unix,if-statement,for-loop,awk,Linux,Unix,If Statement,For Loop,Awk,我有一些数据,每行上都有一系列值,如下所示: 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的值,此时我想删除该行

我有一些数据,每行上都有一系列值,如下所示:

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
我可能做错了什么? 执行此任务有更好的方法吗?

试试这句话:

awk '{for(i=1;i<=NF;i++)if($i>10)printf "%s ",$i;else break;print  ""}' file
awk'{for(i=1;i10)printf“%s”,$i;else break;print”“}文件
用一个例子进行测试:

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
kent$f类
30 20 15 9 8
50 40 30 20 7 2000
100 200 300 400 5 444
kent$awk'{for(i=1;i10)printf“%s”,$i;else break;print”“}f
30 20 15 
50 40 30 20 
100 200 300 400
试试这句话:

awk '{for(i=1;i<=NF;i++)if($i>10)printf "%s ",$i;else break;print  ""}' file
awk'{for(i=1;i10)printf“%s”,$i;else break;print”“}文件
用一个例子进行测试:

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
kent$f类
30 20 15 9 8
50 40 30 20 7 2000
100 200 300 400 5 444
kent$awk'{for(i=1;i10)printf“%s”,$i;else break;print”“}f
30 20 15 
50 40 30 20 
100 200 300 400

next time better给出了一些有意义的输入示例。例如,您的输入没有任何小于10的数字。此外,预期的输出也会帮助您更快地得到答案。下次better会给出一些输入示例,这很有意义。例如,您的输入没有任何小于10的数字。另外,预期的输出也会帮助您更快地得到答案。您能告诉我最终打印“”的目的吗?@Mari删除打印语句,然后重试该命令,你会看到的。我知道你从OPs代码中得到了
$I>10
,但他说代码不起作用,他说当字段
小于10
而不是
小于或等于10
时,他希望停止。我怀疑他没有测试edge案例,这显然应该是他的样本输入和预期输出的一部分。此外,您的代码将在每行添加一个尾随空格,这通常是不需要的。请尝试以下操作:
{for(i=1;i能否请您告诉我最终打印的目的是什么?”?@Mari删除print语句,然后再次尝试该命令,您会看到。我知道您从OPs代码中获得了
$I>10
,但他说该代码不起作用,他说他希望在字段
小于10
而不是
小于或等于10
时停止。我怀疑他没有测试边缘案例,显然应该是已成为其示例输入和预期输出的一部分。此外,您的代码将在每行中添加一个尾随空格,这通常是不需要的和不必要的。请尝试以下操作:
{for(i=1;i