Bash 子字符串最后一次出现的字符

Reg*_*00x 3 linux bash sed

我正在尝试编写一个脚本,在最后一次出现字符后删除所有内容。例如,如果字符串是DATETIME 2014.03.14 12:23:24,我只想得到DATETIME 2014.03.. 所以最后一次出现点之后的所有内容都应该被剥离。我一直在试图用不同的变体sedexpr index,但没有成功。上次我尝试获取最后一个点的索引然后对其进行子字符串化但没有任何结果:

expr index "DATETIME 2014.03.14 12:23:24" '.[0-9][/&][0-9]'

这将返回第一个点而不是最后一个点的位置。

cho*_*oba 5

使用参数扩展。%删除字符串的最后一部分

 d='DATETIME 2014.03.14 12:23:24'
 echo ${d%.*}.
Run Code Online (Sandbox Code Playgroud)

输出:

DATETIME 2014.03.
Run Code Online (Sandbox Code Playgroud)