我有一个像 sample.txt.pgp 这样的字符串,我想在 shell 脚本中返回 sample.txt(但是,字符串长度会有所不同,所以,基本上是“.pgp”之前的所有字符)。有 substr 函数吗?就像,如果我这样做了substr('sample.txt.pgp', -4, 0)
,它应该返回 sample.txt 吗?现在不是,所以我想知道我的语法是否错误,或者 substr 不是函数?
问问题
5403 次
3 回答
3
a='sample.txt.pgp'
echo ${a%.*} # sample.txt (minimal match)
echo ${a%%.*} # sample (maximal match)
于 2010-03-24T20:44:57.417 回答
2
您可以使用basename
:
$ basename sample.txt.pgp .pgp
sample.txt
如果需要,请使用反引号或$()
将结果放入变量中:
$ FILE=sample.txt.pgp
$ VARIABLE=$(basename "$FILE" .pgp)
$ echo $VARIABLE
sample.txt
于 2010-03-24T21:08:28.217 回答
0
filename sample.txt.pgp
我相信返回 sample.txt。(使用反引号)
于 2010-03-24T20:44:30.410 回答