Condicionador básico Awk one-liner

0

Tentando obter awk para examinar um arquivo e verificar se uma coluna tem um valor.

  • Se tiver um valor de "x", imprima "x" em um email (via "| mail -s " ).
  • Se não corresponder a "x", imprima "sem valor", mas ainda envie e-mails.

Tentando algo nos moldes de: -

awk -F ''{if($3 != 0) {a = ($3); print $0, a;} else if ($3==0) print "No updates"}'  file.in | mail...etc 
    
por Bee Min 09.04.2018 / 14:48

3 respostas

3
awk '$3 == "x" { print $3 } $3 != "x" { print "no value" }' file.in | mail ...

ou

awk '{ print ($3 == "x" ? $3 : "no value") }' file.in | mail ...

ou

awk '$3 != "x" { $3 = "no value" } { print $3 }' file.in | mail ...

Dado o arquivo

1 2 3
2 3 x
4 5 x

os três programas awk produzirão a saída

no value
x
x
    
por 09.04.2018 / 15:28
1

tente

awk '{ print ($3!="x")?"No Updates":$3 }' infile | mail ... 
    
por 09.04.2018 / 14:53
-1

Eu tentei pelo método abaixo

g='awk '{print NF}' l.txt| sort -nr | head -1'

Para exsists x padrão

for ((l=1;l<=$g;l++)); do awk -v l="$l" '$l == "x" {print "exists in"l"column"}' l.txt| sort -u; done |mail ..

para o padrão x não existe

for ((l=1;l<=$g;l++)); do awk -v l="$l" '$l != "x" {print " doesnt exists in"l"column"}' l.txt|sort -u; done| mail

arquivo de entrada

[root@praveen_2 ~]# cat l.txt
10 x x
10 x x
    
por 09.04.2018 / 17:27