Как объединить результат двух команд Linux? - PullRequest
0 голосов
/ 16 октября 2018

Есть ли простой способ объединить результат двух команд linux в одну строку?(т.е. без использования переменных)

Я вытягиваю местную наружную температуру с ближайшей метеостанции.Результат сегодня:
5.2
Я просто хочу добавить единицы измерения, поэтому результат должен выглядеть следующим образом:
5.2°C

Пример команды, которая почти дает мне то, чтоЯ хочу это:
wget -q -O- "http://meteocentre.com/montreal/home_e.html" | grep -oP '(?<=Tn= ).*(?=&deg)' ; printf "°C\n"

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

в 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

0 голосов
/ 16 октября 2018

Вы уже объединяете результаты.

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)')"
...