Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Shell 基于特定值筛选字段_Shell_Unix - Fatal编程技术网

Shell 基于特定值筛选字段

Shell 基于特定值筛选字段,shell,unix,Shell,Unix,祝大家新年快乐 我有一个类似这样的文件(示例):没有头,这个文件大约有10000行这样的行 123 345 676 58 1 464 222 0 0 1 555 22 888 555 1 777 333 676 0 1 555 444 0 58 1 问题:我只希望字段3和字段4都有非零值的行,即在上面的示例中,应包括行1和行3,其余的应排除。我该怎么做 输出应如下所示: 123 345 676 58 1 555 22 888 555 1 谢谢。awk非常适合这种材料: awk

祝大家新年快乐

我有一个类似这样的文件(示例):没有头,这个文件大约有10000行这样的行

123 345 676 58 1 
464 222 0 0 1 
555 22 888 555 1 
777 333 676 0 1 
555 444 0 58 1 
问题:我只希望字段3和字段4都有非零值的行,即在上面的示例中,应包括行1和行3,其余的应排除。我该怎么做

输出应如下所示:

123 345 676 58 1 
555 22 888 555 1 

谢谢。

awk
非常适合这种材料:

awk '$3 && $4' input.txt
这将为您提供所需的输出

$3&&4
是一个过滤器
$3
是第三个字段的值,
$4
是第四个字段的值。0值将被评估为
false
,其他任何值将被评估为
true
。如果可能存在负值,则需要更精确地写入:

awk '$3 > 0 && $4 > 0' input.txt

甚至不需要
{print}
<代码>3美元和4美元谢谢你,亚诺斯。。它很有魅力,我很欣赏详细的解释。