2つのLinuxコマンドの結果を1行に(つまり、変数を使用せずに)連結する簡単な方法はありますか?
私は近くの気象台から地元の屋外温度を引き出します。今日の結果は次のとおりです。
5.2
ユニットを追加したいだけなので、結果は次のようになります。
5.2°C
私が欲しいものをほとんど私に与えるコマンドの例は次のとおりです:
wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)' ; printf "°C\n"
または裏返しにします:
printf "%s°C\n" "$(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)')"
wget...|grep...
からの結果がコマンド置換として収集され、printf
の%s
に挿入されるようにします。
たとえば、echo
は、指定したすべての引数を出力するだけです。コマンド置換を使用して、コマンドの出力を文字列に変換できます。
echo $(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)') °C
wget
の出力の最後にあるキャリッジリターンを削除します。
wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)' | tr -d '\n' ; printf "°C\n"
シングルsed
スティーブン・キットが示唆したように、これは質問に対する正確な答えではありません...
$ wget -q -O- "http://meteocentre.com/montreal/home_e.html" | sed -n 's/.*Tn= \(.*\)°.*/\1°C/p'
3.8°C
\1
は、括弧内で一致するものへの逆参照です。
-n
と/p
の組み合わせが何をするかについての説明は this answer を参照してください。