Pipe

如何優雅地將數字輸入 bc?

  • January 8, 2021

有沒有比使用xargs -Ix以下更優雅的方式?

echo "283" | xargs -Ix bc -l -e "scale=2; l( x )/l(10)"

我真的沒有看到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 bcthat has -e),或者bc根本沒有:

awk '{ printf "%.2f\n", log($1)/log(10) }' file

未經測試bc,因為我bc沒有-e,但是這些應該可以工作。

echo "283" | xargs echo 123可以換成。 echo 123 "$(echo "283")"

所以對於你的例子

bc -l -e "scale=2; l( x )/l(10)" "$(echo "283")"

引用自:https://unix.stackexchange.com/questions/628263