bash:仅提取字符串中点后面的部分

bash:仅提取字符串中点后面的部分

假设我有一个字符串,例如

="/home/Rob/.SpaceVim"

我想提取点后面的字符串。我该怎么做呢?

我知道$也用于表示最后一个字符,并且\可用于在字符串文字中制作字符。所以我尝试过类似的事情awk '\.$',但没有取得任何成功。

答案1

可能:

echo "/home/Rob/.SpaceVim" | grep -o "\..*$"

或者

echo "/home/Rob/.SpaceVim" | sed 's;[^.]*;;'

没有点和 GNUgrep

echo "/home/Rob/.SpaceVim" | grep -Po "(?<=\.).*$"

或者sed

echo "/home/Rob/.SpaceVim" | sed 's;^.*\.;;'

你甚至可以包括cut

echo "/home/Rob/.SpaceVim" | cut -d'.' -f2-

(请注意,您会看到不包含点或包含多个点的行之间的行为有所不同,但您尚未指定在这种情况下要做什么)。

答案2

man bash

a="/home/Rob/.SpaceVim"
echo ${a##.*/}

相关内容