3 votes

Comment définir et imprimer la valeur par défaut d'une variable en awk ?

Comment définir la valeur par défaut d'une variable si celle-ci n'est pas définie ?

Comme dans bash :

x=1
echo ${x}
1
unset x
echo "${x:-I AM DEFAULT}"

Comment ce comportement peut-il être réalisé en awk :

Exemple :

 -->echo "$x"
one two three four
foo bla2 bla3 bla4
bar bla7 bla8

Résultat souhaité :

echo "$x" |awk '..'
bla2 bla3 bla4 bla7 NA bla8

Sortie de courant :

echo "$x" |awk '/foo/{two=$2;three=$3;four=$4;next} /bar/{print two , three, four, $2,$3,$4} '
bla2 bla3 bla4 bla7 bla8

Ne peut pas faire comme : (acte stupide dû au désespoir) :

echo "$x" |awk '/foo/{two=$2;three=$3;four=$4;next} /bar/{print two , three, four, $2,${3:-NA},$4} '

OU

pour awk $3 est bla8, ce qui ne fonctionnera pas non plus.

echo "$x" |awk '/foo/{two=$2;three=$3;four=$4;next} /bar/{if(!length($3))print two , three, four, $2,$3,"NA",$4;print two , three, four, $2,$3,$4} '
bla2 bla3 bla4 bla7 bla8

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X