以下のファイルがあります
var 3 2014 string
var1 4 2011 string4
var2 6 1999 string2
var3 1 2016 string6
次に、列の1つを数値と比較してから何かをエコーするwhile readループがあります。ところで、私が望むフレーズではなく、他のフレーズが出ました。
while read num
do
if [ "$num" = "0" ]; then
echo "Number is equal to zero"
else
echo "number is not equal to 0"
fi
done < home/dir/file.txt | awk '{print $2}'
上記の内容をエコーするのではなく、ファイルの2番目の列をエコーします。
ベストアンサー1
あなたは試す必要があります
awk '{print $2}' home/dir/file.txt | while read num
do
if [ "$num" = "0" ]; then
echo "Number is equal to zero"
else
echo "number is not equal to 0"
fi
done
ハイブリッド awk/bash ソリューション。
他の人が指摘したように、awkリダイレクトは後で発生します。