ksh:从多扩展名文件名中删除最后一个扩展名



我有一个格式为dir1/dir2/filename.txt.org的文件名,我想将其重命名为dir1/dir2/filename.txt。如何做到这一点。我试着用"来"cut"分隔符,但它也删除.txt

您可以尝试korn-shell变量扩展格式,而不是使用子流程(例如cut(。这可以更快。

示例:

var1=dir1/dir2/filename.txt.org
var2=${var1%.*}

如果你现在print $var2,它的值将是dir1/dir2/filename.txt

%告诉它删除.*的最小匹配的最右匹配(这意味着最右句点字符之后的任何字符(。

${variable%pattern}-返回variable的值,不包含与pattern匹配的最小结束部分。

其他可变扩展格式也可用,值得研究文档。

最新更新