Mtl*_*Dev 2 grep bash sed awk tr
有没有一种简单的方法可以将两个 Linux 命令的结果连接在一行中(即,不使用变量)?
我从附近的气象站提取当地室外温度。今天的结果是:
5.2
Run Code Online (Sandbox Code Playgroud)
我只想添加单位,所以结果应该是这样的:
5.2°C
Run Code Online (Sandbox Code Playgroud)
一个示例命令,几乎给了我我想要的东西:
wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)' ; printf "°C\n"
Run Code Online (Sandbox Code Playgroud)
或者由内而外:
printf "%s°C\n" "$(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)')"
Run Code Online (Sandbox Code Playgroud)
使得从该结果wget...|grep...被收集作为命令替换和插入%s的printf。
echo,例如,只打印你给它的所有参数。您可以使用命令替换将命令的输出转换为字符串。
echo $(wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)') °C
Run Code Online (Sandbox Code Playgroud)
删除wget's 输出末尾的回车:
wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=°)' | tr -d '\n' ; printf "°C\n"
Run Code Online (Sandbox Code Playgroud)