要查找字段 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
则不会通过)。00
0.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
这样能达到你想要的效果吗?
如果您提供更多示例输入,将会很有用。