现在我有这个:
echo "silly/horse/fox" | cut -d "/" -f3
fox
但是无论我们有多少分隔符,我都希望能够获得最后一个字符串。
所以像“傻/马/狐狸/狮子”这样的东西会返回给我“狮子”
相当于 Python 的 string.split('/')[-1]
纯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
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
指的是最后一个字段。
awk -F'/' '$0=$NF'
或者
grep -o "[^/]*$"
或者
sed 's#.*/##'