24

示例字符串:

/gasg/字符串

预期结果 :string

要删除的字符:“/”符号之间的所有字符,包括符号

4

3 回答 3

32

sed

$ echo "/gasg/string" | sed -e 's/\/.*\///g'
string

使用内置 bash 字符串操作:

$ s="/gag/string"
$ echo "${s##/*/}"
string

您的字符串看起来与 Unix 路径名完全一样。这就是您也可以使用该basename实用程序的原因 - 它返回给定 Unix 路径名的最后一部分:

$ basename "/gag/string"
string
# It works with relative paths and spaces too:
$ basename "gag/fas das/string bla bla"
string bla bla
于 2012-05-27T19:41:49.560 回答
32

也 awk - 使用斜杠作为分隔符并打印最后一个字段

echo "/gas/string" | awk -F/ '{print $NF}'

或剪切 - 但这只有在您有相同数量的目录要剥离时才有效

echo "/gasg/string" |cut -d/ -f 3
于 2012-05-27T20:00:13.460 回答
8

你可以使用 bash 字符串操作

a='/gasg/string'
echo ${a##*/}
于 2012-05-28T01:41:04.880 回答