5

现在我有这个:

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

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

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

相当于 Python 的 string.split('/')[-1]

4

3 回答 3

9

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
于 2013-07-25T12:50:16.460 回答
5

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

As$NF指的是最后一个字段。

于 2013-07-25T12:48:53.500 回答
3
awk -F'/' '$0=$NF'

或者

grep -o "[^/]*$"  

或者

sed 's#.*/##'
于 2013-07-25T12:49:28.610 回答