Mtl Dev Asked: 2018-10-17 08:31:08 +0800 CST2018-10-17 08:31:08 +0800 CST 2018-10-17 08:31:08 +0800 CST 如何连接两个 Linux 命令的结果 772 有没有一种简单的方法可以在一行中连接两个 Linux 命令的结果(即,不使用变量)? 我从附近的气象站获取当地的室外温度。今天的结果是: 5.2 我只是想添加单位,所以结果应该是这样的: 5.2°C 一个示例命令,几乎给了我我想要的东西: wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)' ; printf "°C\n" bash awk 4 个回答 Voted Best Answer Jeff Schaller 2018-10-17T08:36:21+08:002018-10-17T08:36:21+08:00 或者由内而外地做: printf "%s°C\n" "$(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)')" 以便将来自的结果wget...|grep...作为命令替换收集并插入%s到printf. choroba 2018-10-17T08:33:03+08:002018-10-17T08:33:03+08:00 echo,例如,只打印你给它的所有参数。您可以使用命令替换将命令的输出转换为字符串。 echo $(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)') °C Stephen Kitt 2018-10-17T08:33:26+08:002018-10-17T08:33:26+08:00 wget删除's 输出末尾的回车: wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)' | tr -d '\n' ; printf "°C\n" Ph3n0x 2018-10-18T01:23:46+08:002018-10-18T01:23:46+08:00 单次 正如斯蒂芬基特所建议的那样,虽然这不是问题的确切答案...... $ wget -q -O- "http://meteocentre.com/montreal/home_e.html" | sed -n 's/.*Tn= \(.*\)°.*/\1°C/p' 3.8°C \1是括号内匹配内容的反向引用 有关和的组合的解释,请参见此答案。-n/p
或者由内而外地做:
以便将来自的结果
wget...|grep...
作为命令替换收集并插入%s
到printf
.echo
,例如,只打印你给它的所有参数。您可以使用命令替换将命令的输出转换为字符串。wget
删除's 输出末尾的回车:单次
正如斯蒂芬基特所建议的那样,虽然这不是问题的确切答案......
\1
是括号内匹配内容的反向引用有关和的组合的解释,请参见此答案。
-n
/p