Я хотел бы извлечь, затем заменить на строку. Есть ли способ сделать это в одной команде?операция двойной строки сразу
Предположим, у меня есть эта переменная:
var="y=2,4"
Я хочу это:
2.4
с вещью, как ${${var#*=}/,/.}
Я хотел бы извлечь, затем заменить на строку. Есть ли способ сделать это в одной команде?операция двойной строки сразу
Предположим, у меня есть эта переменная:
var="y=2,4"
Я хочу это:
2.4
с вещью, как ${${var#*=}/,/.}
В BASH вы не можете выполнять несколько строковых операций за один раз, как это.
Это технически не одну операцию, но в BASH вы можете сделать:
var="y=2,4"
[[ "$var" =~ ^.*=(.+)$ ]] && echo ${BASH_REMATCH[1]/,/.}
2.4
Вы можете попробовать sed
$ var="y=2,4"
$ sed 's/^.*=//;s/,/./g' <<< "$var"
2.4
echo "$var" | sed -n 's/y=//p' | tr , .
[Всегда указывайте свои переменные] (https://unix.stackexchange.com/questions/171346/security-implications-of-forgetting-to-quote-a-variable-in-bash -posix-shells) –
это лучше. – outdev
Нет, вам действительно нужны двойные кавычки. –
Вы ожидали переменные 'var' и' y' и чтобы иметь значение '2,4 '? –
Нет, нет ... просто var – odessos