$14
quando expandido pelo shell na maioria das shells parecidas com Bourne é o mesmo que ${1}4
, e se $1
estiver vazio ou não configurado, isso dá 4
como esperado. Aqui você deseja passar um $14
litteral para awk
para que awk
o trate como seu 14º campo.
Normalmente, entre aspas simples, essa variável $1
não seria expandida, mas você não está nos dizendo como
De qualquer forma, aqui, parece que você quer:
find . -name "$cdr_type*$DAYZ*.unl*" -exec zcat {} + |
awk -F "|" -v tdate="$tdate" -v misdn="$misdn" '
$14 == tdate && $22 == misdn' |
head
Isso é passar o conteúdo das variáveis $tdate
e $misdn
shell como awk
variables.