我尝试num23.txt
仅使用一个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:~$
我尝试仅使用%
和/
运算符。如何将最后一个命令更改为仅作为输出23
?
取得号码
对于您的特定示例(当您只有一个仅包含数字的子字符串时):
echo ${f//[^0-9]/}
要么
echo ${f//[^[:digit:]]/}
获取前缀和后缀之间的字符串
但是,如果要指定该字符串的后缀和前缀,则可以使用以下替代方法:
echo `basename ${f/num} .txt`
因为echo ${f/num%.txt}
不能正常运行,而且Bash不允许你运行这样的东西echo ${${f/num}%.txt}
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句