Получить строку после символа У меня есть строка, которая выглядит так: GenFiltEff=7.092200e-01 Используя bash, я хотел бы просто получить номер после символа =. Есть ли способ сделать это? Ответ 1 cut -d "=" -f 2 <<< "$your_str" или sed -e 's#.*=\(\)#\1#' <<< "$your_str" Ответ 2 Используйте расширение параметра, если значение уже сохранено в переменной. $ str="GenFiltEff=7.092200e-01" $ value=${str#*=} Или используйте read $ IFS="=" read name value <<< "GenFiltEff=7.092200e-01" В любом случае, $ echo $value 7.092200e-01 Ответ 3 echo "GenFiltEff=7.092200e-01" | cut -d "=" -f2 Ответ 4 Это должно работать: your_str='GenFiltEff=7.092200e-01' echo $your_str | cut -d "=" -f2 Ответ 5 ${word:$(expr index "$word" "="):1} который получает 7. Предполагая, что вы имеете в виду всю оставшуюся часть строки, просто оставьте :1.
Ответ 2 Используйте расширение параметра, если значение уже сохранено в переменной. $ str="GenFiltEff=7.092200e-01" $ value=${str#*=} Или используйте read $ IFS="=" read name value <<< "GenFiltEff=7.092200e-01" В любом случае, $ echo $value 7.092200e-01
Ответ 5 ${word:$(expr index "$word" "="):1} который получает 7. Предполагая, что вы имеете в виду всю оставшуюся часть строки, просто оставьте :1.