Удалить ".200.300." из строки - PullRequest
0 голосов
/ 14 января 2019

Как лучше всего взять строку, такую ​​как:

100.200.300.400

И удалите ".200.300." часть строки, выходящая из "100400".?

ОБНОВЛЕНИЕ: добавление некоторого дополнительного контекста. :) Мы используем Jamf Pro для исправления приложений в macOS. Мы используем атрибуты расширений (EAs), чтобы определить, находится ли компьютер в желаемом состоянии (имеет версию, которую мы развертываем или позже). В настоящее время мы используем несколько советников, что не очень эффективно. Используя Adobe Flash Player в качестве примера, версия всегда имеет формат NN.0.0.NNN. Если мы удалим ".0.0." из строки версии у нас может быть целое число для выполнения анализа "-ge". В результате мы узнаем, находится ли компьютер в желаемом состоянии (приложение имеет желаемую версию или более позднюю версию), или не находится в желаемом состоянии (требует обновления), или не установлен (ничего не делать). Вот пример скрипта, который я использовал, используя вход от вас, ребята:

#!/bin/sh

plistFile="/Library/Internet Plug-Ins/Flash Player.plugin/Contents/version.plist"
versionString=$( defaults read "$plistFile" CFBundleShortVersionString )
currentState=$( echo "${versionString}" | sed 's/\..*\.//' )
desiredState="32114"

if [ -e "$plistFile" ]
then
    if [[ "${currentInteger}" -ge "${desiredInteger}" ]]
    then
        echo "<result>DesiredState</result>"
    else
        echo "<result>NeedsUpdate</result>"
    fi
else
    echo "<result>NotInstalled</result>"
fi

exit 0

1 Ответ

0 голосов
/ 14 января 2019

Не могли бы вы попробовать следующее.

echo "100.200.300.400" | sed 's/\..*\.//'
...