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

标签 linux awk sed tr

有没有一种简单的方法可以在一行中连接两个 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)')"

关于linux - 如何连接两个 linux 命令的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52840033/

相关文章:

regex - 使用 sed 或 grep 在一行中计算正则表达式模式匹配?

c - 区分定时器生成的 sigalrm 和用户生成的 sigalrm

linux - 如何在 xv6 中获取 pgdir?

awk - 如何使用sed隔离 “ssh-keygen -if”输出中的Linux指纹

bash - 使用shell修改文件夹及其所有子文件夹中的文件

linux - 如何删除特定模式后的行并提取某些内容

linux - 如何将 qsub 输出流定向到 pwd 而不是 home

linux - PHP 的 proc_open()、proc_close() 等的 Perl 等效项是什么?

macos - 向 CSV 列添加分隔符

linux - 我可以使用哪些 linux 命令对制表符分隔的文本文件中的列进行排序?