【发布时间】:2012-06-02 08:24:31
【问题描述】:
示例字符串:
/gasg/字符串
预期结果:string
要删除的字符:“/”符号之间的所有字符,包括符号
【问题讨论】:
-
batween the "/" symbols如果只有一个斜线,或者根本没有斜线,应该怎么办?还是第一个斜线之前的文字?
示例字符串:
/gasg/字符串
预期结果:string
要删除的字符:“/”符号之间的所有字符,包括符号
【问题讨论】:
batween the "/" symbols 如果只有一个斜线,或者根本没有斜线,应该怎么办?还是第一个斜线之前的文字?
与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
【讨论】:
/ 不是必需的,但我添加它是为了说明这一点。
ftp:///documents/string.txt)。
还有 awk - 使用斜杠作为分隔符并打印最后一个字段
echo "/gas/string" | awk -F/ '{print $NF}'
或剪切 - 但这只有在您有相同数量的目录要剥离时才有效
echo "/gasg/string" |cut -d/ -f 3
【讨论】:
-f 3 吗?
-f 2,结果就是gasg。对于-f 1,它只是一个空字符串,因为第一个斜杠前面没有任何内容。
你可以使用 bash 字符串操作
a='/gasg/string'
echo ${a##*/}
【讨论】: