Отфильтровать слово из строки - PullRequest
0 голосов
/ 19 октября 2019

Я хотел бы получить слово (число) из строки ниже, но с помощью очень простой одной линейной команды. Необходимая строка - 260,796, поэтому я просто хотел бы получить 260,796 из строки ниже

xcxalpha=0.000 es enealpha=260.796 es emalpha=29.107 es


1 Ответ

0 голосов
/ 24 октября 2019

Вы должны подумать, как вы знаете, какую часть строки вы хотите.
Когда вы хотите, чтобы подстрока после второй '=' до пробела, использовала

echo "xcxalpha=0.000 es enealpha=260.796 es emalpha=29.107 es" | cut -d "=" -f3 | cut -d " " -f1

Когда вы хотите значениепосле enealpha=, используйте

echo "xcxalpha=0.000 es enealpha=260.796 es emalpha=29.107 es" | sed 's/.*enealpha=//;s/ .*//'

или

echo "xcxalpha=0.000 es enealpha=260.796 es emalpha=29.107 es" | sed -r 's/.*enealpha=([^ ]*).*/\1/'

Если пробелы и знаки равенства похожи на пример, вы можете рассматривать их как sep как

echo "xcxalpha=0.000 es enealpha=260.796 es emalpha=29.107 es" | awk -F " |=" '{print $5}'

Если вы хотите что-то еще, ищите правильную sed/awk/cut команду / комбинацию.

...