使用字符作为bash中的分隔符获取最后一个字符串

时间:2013-07-25 12:47:34

标签: string bash

现在我有这个:

echo "silly/horse/fox" | cut -d "/" -f3
fox

但是无论我们有多少分隔符,我都希望能够得到最后一个字符串。

所以像“傻/马/狐狸/狮子”这样的东西会让我“狮子”

与Python的string.split('/')[ - 1]

相当的东西

3 个答案:

答案 0 :(得分:8)

bash解决方案:

$ foo="silly/horse/fox"
$ echo ${foo##*/}
fox
$ foo="silly/horse/fox/lion"
$ echo ${foo##*/}
lion

使用sed

$ echo "silly/horse/fox/lion" | sed 's#.*/##'
lion

答案 1 :(得分:4)

awk救援:

$ echo "silly/horse/fox" | awk -F"/" '{print $NF}'
fox
$ echo "silly/horse/fox/but/not/that/much" | awk -F"/" '{print $NF}'
much
$ echo "unicorn" | awk -F"/" '{print $NF}'
unicorn

由于$NF是指最后一个字段。

答案 2 :(得分:2)

awk -F'/' '$0=$NF'

grep -o "[^/]*$"  

sed 's#.*/##'