删除“ .200.300”。从字符串

时间:2019-01-14 05:36:35

标签: sed cut

采用诸如以下这样的字符串的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:0)

请您尝试以下。

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