我想删除字符串的第一部分,这里是代码,替换最后一部分工作,但不是第一部分,任何帮助?感谢。
dir="/info/"
file_name="/info/test.db"
no_ext=${file_name%.db}
no_path=${no_ext%${dir}}
echo $file_name
echo $no_ext
echo $no_path
答案 0 :(得分:0)
我想,你是想获取没有扩展名和扩展名的文件名,文件名。
更好的用户basename命令来执行此操作。
$ basename /Users/text/help1.txt
help1.txt
$ basename help1.txt| cut -d'.' -f2
txt
$ basename help1.txt | cut -d'.' -f1
help1
此外,如果您想获取没有文件名的目录名称 使用dirname
$ dirname /Users/text/help1.txt
/Users/text
答案 1 :(得分:0)
与package require fileutil
::fileutil::updateInPlace datafile process
(删除后缀)相同,您可以使用%
删除前缀:
#
可以说,你可以在这里使用一个模式,因为在我看来,你似乎正在剥离文件名的路径:
no_path="${file_name#${dir}}"
Double no_path="${file_name##*/}"
使得匹配变得贪婪,因此它删除了最后一个斜杠的所有内容。这是我在bash脚本中一直使用的东西' #
个函数:Usage