戻り値が整数であることを確認したい場合は、bashスクリプトでこれを使用します。
if [ -z "$value" ]
then
echo 0
else
echo $value
fi
z
awkでifオプションを使用しようとしています。たとえば、次の行があります。
PRIMARY SECONDARY CONNECTED 350 800
私はこれを使用しようとしています:
/bin/awk '{if( -z $1){print "0"}else{print $1}}' script
私がorまたはor$1
に置き換えても、常に返されます。私はawkを間違った方法で使用していますか?$2
$3
$4
$5
0
ベストアンサー1
他の人が言ったように、これには-z
テストがawk
なく-z
、シェルのテストは整数ではなく空の文字列のテストです。
変数が空であるかどうかをテストするには、次のようにしawk
ます。空の場合は0を印刷し、それ以外の場合はその値を印刷します。
if (value == "")
print 0
else
print value
または、
print (value == "" ? 0 : value)
たとえば、
$ awk -F '\t' '{ print ($1 == "" ? 0 : $1) }' file
入力でタブ区切りの最初の値が空の行に0を印刷し、そうでない場合は実際の値を印刷します。
関連性がある可能性があります(変数の型を見つける場合awk
)。