Bash 获取部分文件名
我尝试只使用一个bash变量来获取文件Bash 获取部分文件名,bash,variables,parameter-expansion,Bash,Variables,Parameter Expansion,我尝试只使用一个bash变量来获取文件num23.txt的编号 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} nu
num23.txt
的编号
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:~$
我尝试只使用
%
和/
运算符。它如何更改最后一个命令以仅作为输出获取23
?获取数字
对于您的特定示例(当只有一个子字符串只有数字时):
或
获取前缀和后缀之间的字符串
但是,如果要指定该字符串的后缀和前缀,可以选择以下选项:
echo `basename ${f/num} .txt`
因为echo${f/num%.txt}
不能正常工作,而且Bash不允许您运行类似这样的echo${{f/num}%.txt}
echo ${f//[^[:digit:]]/}
echo `basename ${f/num} .txt`