sedを使用して数字の代わりにカンマを追加しますか?

sedを使用して数字の代わりにカンマを追加しますか?

イーサリアムの価格を取得し、応答形式を指定する簡単なスクリプトを書いてください。

私が試したことは次のとおりです。

#!/bin/bash

response=$(curl 'https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=GBP')
price=$(echo $response | grep -o -P '(?<=:).*(?=})')
formattedPrice=$(echo "${price%.*}" | sed 's/\([[:digit:]]\{3\}\)\([[:digit:]]\{3\}\)\([[:digit:]]\{3\}\)/\1,\2,\3/g')

echo "£$formattedPrice"

カンマを追加しませんが。

ベストアンサー1

数値書式を指定する代わりに、sed次を使用することをお勧めしますprintf

$ price=1254.43
$ printf "%'.2f\n" $price
1,254.43

または少数の部分が必要ない場合:

$ printf "%'d\n" ${price%.*}
1,254

おすすめ記事