采用诸如以下这样的字符串的最佳方法是什么?
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
答案 0 :(得分:0)
请您尝试以下。
echo "100.200.300.400" | sed 's/\..*\.//'