删除“.200.300”。来自字符串
Remove ".200.300." from string
采用以下字符串的最佳方法是什么:
100.200.300.400
并删除“.200.300”。字符串的一部分留下“100400”。?
更新:添加一些额外的上下文。 :) 我们使用 Jamf Pro 为 macOS 上的应用程序打补丁。我们使用扩展属性 (EA) 来确定计算机是否处于所需状态(具有我们正在部署的版本或更高版本)。目前我们使用多个 EA,效率不高。以 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
能否请您尝试以下。
echo "100.200.300.400" | sed 's/\..*\.//'
采用以下字符串的最佳方法是什么:
100.200.300.400
并删除“.200.300”。字符串的一部分留下“100400”。?
更新:添加一些额外的上下文。 :) 我们使用 Jamf Pro 为 macOS 上的应用程序打补丁。我们使用扩展属性 (EA) 来确定计算机是否处于所需状态(具有我们正在部署的版本或更高版本)。目前我们使用多个 EA,效率不高。以 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
能否请您尝试以下。
echo "100.200.300.400" | sed 's/\..*\.//'