awk + проверяют поле если нуль

Чтобы найти, сделало ли поле 5, я использую:

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

мой вопрос, если существует другой изящный способ проверить, является ли поле 5 нулем?

СПАСИБО Yael

0
задан 27.06.2010, 13:48

2 ответа

После length5=$(echo $LINE | awk '{ print length($5)}') переменная $lenght5 будет содержать длину поля 5;

Примечание: в Вашей строке в качестве примера, если бы ttt были пусты, yyy был бы полем 5, так был бы осторожен: можно использовать

awk -F' '

вместо awk сделать пространство разделителем полей, так, чтобы 2 пробелов = пустое поле....

2
ответ дан 24.11.2019, 06:52

Это передаст, если 5-е поле будет строкой 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

Это делает то, что Вы хотите?

Было бы полезно при обеспечении большего количества входа в качестве примера.

0
ответ дан 24.11.2019, 06:52

Теги

Похожие вопросы