Оцените переменную в целое с помощью sed - PullRequest
1 голос
/ 12 октября 2011

Это может быть так просто для людей, которые знают. Я почти заканчиваю эту команду

echo VERSION=1.0 | sed 's/^VERSION=\([0-9]\).\([0-9]\)/VERSION=\1.\2+1/'

Я только хочу написать VERSION=1.1. Как я могу оценить \2 в целое число и сложить +1 ..

Ответы [ 3 ]

2 голосов
/ 12 октября 2011

Couse SED может сделать это. вот для чего е . Вы можете передать соответствующую / замененную строку в команду оболочки, используя "e"

см. Пример на основе вашей строки sed:

kent$  echo VERSION=1.0 | sed 's/^VERSION=\([0-9]\).\([0-9]\)/echo "VERSION=\1.$((\2+1))"/e'                                             
VERSION=1.1
0 голосов
/ 12 октября 2011

Crpytic ответ - как использовать весь инструментарий:

x='VERSION=1.0'
echo -n $x | sed 's/\..*/./'; expr `echo $x | grep -o '\..*' | cut -c 2-` + 1
0 голосов
/ 12 октября 2011

Вы можете использовать команду bc:

echo VERSION=`echo "1.0 + 0.1" | bc`

Результат:

VERSION=1.1

man bc

echo "VERSION="`echo "v=1.0; v+=0.1; v" | bc` > myFile.txt
cat myFile.txt

VERSION=1.1
...