【问题标题】:ksh: remove last extension from a multiple extension filenameksh:从多扩展名文件名中删除最后一个扩展名
【发布时间】:2020-08-29 19:56:44
【问题描述】:

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

【问题讨论】:

    标签: file ksh


    【解决方案1】:

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

    示例:

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

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

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

    ${variable%pattern} - 返回 variable 的值,没有匹配 pattern 的最小结尾部分。

    还有其他的变量扩展格式,值得研究一下文档。

    【讨论】:

    • 我们如何将 ksh 用于 subshel​​l?
    • 而不是sh -c 使用ksh -c
    猜你喜欢
    • 1970-01-01
    • 2020-07-20
    • 2012-06-29
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多