awk + verificar campo se zero

0

Para descobrir se o campo 5 já usei:

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

minha pergunta se existe outra maneira elegante de verificar se o campo 5 é zero?

THX Yael

    
por yael 27.06.2010 / 10:53

2 respostas

2

Após length5=$(echo $LINE | awk '{ print length($5)}') a variável $lenght5 conterá o comprimento do campo 5;

Nota: na sua linha de exemplo, se ttt estivesse vazio, yyy seria o campo 5, então tenha cuidado: você pode usar

awk -F' '

em vez de awk para tornar o espaço o delimitador de campo, de modo que 2 espaços = campo vazio ....

    
por 27.06.2010 / 13:21
0

Isso passará se o quinto campo for a string 0 (e não será se for 00 , 0.0 ou se estiver ausente, etc.).

#!/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

Isso faz o que você quer?

Seria útil se você fornecesse mais exemplos de entrada.

    
por 27.06.2010 / 13:20

Tags