sample.txt.pgp のような文字列があり、シェル スクリプトで 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 に答える