grep
特定のファイルに見つからない場合は、0を印刷したいと思います。
grep -A4 " Apple " a.txt | tail -1 | awk '{printf("%f", $4)}' >> out
私もif else条件を使ってみました。
if grep -A4 " Apple " a.txt | tail -1 ;
then
awk '{printf("%f", $4)}' >> out
else
echo 0 >> out
fi
たとえば、次のファイルが提供されます。
Apple
is
xyz
abc def cost 352.271
私のコマンドはapple
352.271をgrepして印刷します。しかし、一致するものがない場合は印刷したいと思います0
。
ベストアンサー1
あなたがやろうとしていることは次のとおりです。
if result=$(grep -A4 " Apple " a.txt);
then
echo "$result"|tail -1|awk '{printf("%f",$4)}' >>out
else
echo 0 >>out
fi
コードの主な問題は、パイプを使用するときに終了コードが常にケースの最後のコマンドから出てくるので、tail -1
if0
条件が常にtrueであることです。
コードの他の問題は、awk '{printf("%f", $4)}' >> out
これが入力をどこで取得するかということですawk
。