awk + ​​验证字段是否为零

awk + ​​验证字段是否为零

要查找字段 5 是否有我使用:

   [[ -z ` echo $LINE  | awk '{print $5}' ` ]]

我的问题是是否有另一种优雅的方法来验证字段 5 是否为零?

谢谢 Yael

答案1

之后length5=$(echo $LINE | awk '{ print length($5)}') 变量$lenght5将包含字段5的长度;

注意:在您的示例行中,如果 ttt 为空,则 yyy 将是字段 5,因此请小心:您可以使用

awk -F' '

而不是awk将空格作为字段分隔符,这样 2 个空格 = 空字段....

答案2

如果第五个字段是字符串,则此过程将通过(如果它是、或者不存在等,0则不会通过)。000.0

#!/bin/bash

LINE="123 aaa ddd ggg 0 yyy hhh"

if [[ "0" = `echo ${LINE}  | awk '{print $5}'` ]]
then
   echo "5th field is string '0'"
else
   echo "5th field isn't string '0'"
fi

这样能达到你想要的效果吗?

如果您提供更多示例输入,将会很有用。

相关内容