获取连字符后字符串的最后一部分

获取连字符后字符串的最后一部分

是否有一个简单的命令行来提取由连字符分隔的字符串的最后一部分?例如,我想123从中提取foo-bar-123

答案1

你可以使用 Bash 的参数扩展:

string="foo-bar-123" && printf "%s\n" "${string##*-}"
123

如果您想使用另一个进程,请使用 Awk:

echo "foo-bar-123" | awk -F- '{print $NF}'

或者,如果您更喜欢 Sed:

echo "foo-bar-123" | sed 's/.*-//'

更轻量级的外部过程,如格伦·杰克曼建议cut

cut -d- -f3 <<< "$string"

答案2

echo "foo-bar-123"| awk -F"-" '{print $3}' 

答案3

grep -Po '(?<=\w-)\w+(?=$|[\s.,])'

相关内容