Абсолютное значение числа

Команда:sed -E "s/Chrome|OpenFin/=VLOOKUP\('Mar 19'\!A4,'User-Firm'\!A2:B1999,2,FALSE\)/g" filename|sed "s/\/[0-9]\{3\}.*//g"

выход

sed -E "s/Chrome|OpenFin/=VLOOKUP\('Mar 19'\!A4,'User-Firm'\!A2:B1999,2,FALSE\)/g" 
 filename|sed "s/\/[0-9]\{3\}.*//g"

Name1   =VLOOKUP('Mar 19'!A4,'User-Firm'!A2:B1999,2,FALSE)
Name2   =VLOOKUP('Mar 19'!A4,'User-Firm'!A2:B1999,2,FALSE)
Name3   =VLOOKUP('Mar 19'!A4,'User-Firm'!A2:B1999,2,FALSE

)

0
02.07.2020, 01:01
2 ответа

Умножение любого числа на его знак даст положительное число. Или, если хотите, абсолютное значение числа. Функция для знака очень проста:

sign () { echo "$(( $1 < 0 ? -1 : 1 ))"; }

Тогда абсолютное значение равно:

echo "$(( x * $(sign "$x") ))"

Конечно, намного проще просто удалить начальный отрицательный знак (, если он существует ), или, для полноты, любой +или -знак (, если он существует ). ] с любыми начальными пробелами:

echo "${x##*[+-]}"   # assuming x is an integer valid in the shell.
2
18.03.2021, 23:22

Если у вас есть отрицательное целое число, вы можете рассматривать его как строку и удалить начальный дефис

x=-5
echo ${x#-}   # "5"

x=5
echo ${x#-}   # "5"
9
18.03.2021, 23:22

Теги

Похожие вопросы