簡體   English   中英

Unix substr在shell腳本中?

[英]Unix substr in shell script?

我有一個像sample.txt.pgp這樣的字符串,我想在shell腳本中返回sample.txt(但是,字符串的長度會有所不同,因此,基本上所有在“ .pgp”之前的字符)。 有substr函數嗎? 就像,如果我做了substr('sample.txt.pgp', -4, 0) ,它應該返回sample.txt嗎? 現在不是,所以我想知道語法是否錯誤,或者substr不是函數嗎?

a='sample.txt.pgp'
echo ${a%.*}   # sample.txt (minimal match)
echo ${a%%.*}  # sample     (maximal match)

您可以使用basename

$ basename sample.txt.pgp .pgp
sample.txt

如果需要,請使用反引號或$()將結果放入變量中:

$ FILE=sample.txt.pgp
$ VARIABLE=$(basename "$FILE" .pgp)
$ echo $VARIABLE
sample.txt

我相信, filename sample.txt.pgp返回sample.txt。 (使用反引號)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM