xargs -Ix
以下を使用するよりもエレガントな方法はありますか?
echo "283" | xargs -Ix bc -l -e "scale=2; l( x )/l(10)"
答え1
私はここで理由を本当に理解していませんxargs
。
printf 'scale=2; l(%s)/l(10)\n' "283" | bc -l
ファイルから数字を読み取る代わりに:
awk '{ printf "l(%s)/l(10)\n", $1 }' file | bc -l -e 'scale=2'
(aがbc
持っていると仮定-e
)またはbc
まったくなし:
awk '{ printf "%.2f\n", log($1)/log(10) }' file
答え2
私のものがないbc
のでテストされていませんが、うまくいきます。bc
-e
echo "283" | xargs echo 123
に置き換えることができます。
echo 123 "$(echo "283")"
だからあなたの例
bc -l -e "scale=2; l( x )/l(10)" "$(echo "283")"