如何连接两个 linux 命令的结果?

How to concatenate the result of two linux commands?

有没有一种简单的方法可以将两个 linux 命令的结果连接在一行中? (即不使用变量)

我从附近的气象站获取当地室外温度。今天的结果是:
5.2
我只是想添加单位,所以结果应该是这样的:
5.2°C

一个示例命令,它几乎给了我我想要的是:
wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=&deg)' ; printf "°C\n"

您已经在串联结果。

wget .. | grep .. 输出:5.2\n

printf 输出 °C\n

因此,串联的结果是 5.2\n°C\n ,正是您得到的结果。

你想要做的是去除 5.2 之后的换行符。您可以利用 $(command substitution) 去除尾随换行并将其传递给 printf:

printf '%s°C\n' "$(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=&deg)')"

在bash中,在末尾添加竖线:

echo $(cat) [more text]

echo `cat` [more text]

示例:

wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=&deg)' | echo $(cat) °C

-> 5.2 °C