4

num23.txt1 つの bash 変数のみを使用して、ファイルの番号を取得しようとします。

User@User-MacBook-Pro:~$ f=num23.txt
User@User-MacBook-Pro:~$ echo $f
num23.txt
User@User-MacBook-Pro:~$ echo ${f%.txt}
num23
User@User-MacBook-Pro:~$ echo ${f/num}
23.txt
User@User-MacBook-Pro:~$ echo ${f/num%.txt}
num23.txt
User@User-MacBook-Pro:~$

%and/演算子のみを使用しようとしています。最後のコマンドを出力のみとして取得するように変更するにはどうすればよい23ですか?

4

1 に答える 1

3

番号を取得する

特定の例(数字のみを持つ部分文字列が1つしかない場合):

echo ${f//[^0-9]/} 

また

echo ${f//[^[:digit:]]/}

接頭辞と接尾辞の間の文字列を取得します

ただし、その文字列のサフィックスとプレフィックスを指定する場合は、次の代替手段があります。

echo `basename ${f/num} .txt`

echo ${f/num%.txt}は正しく動作せず、Bash ではこのようなものを実行できないためですecho ${${f/num}%.txt}

于 2015-12-27T13:33:14.787 に答える