美文网首页
Linux对文件名进行操作——截取

Linux对文件名进行操作——截取

作者: Bio_Infor | 来源:发表于2022-03-10 16:13 被阅读0次

    在shell中进行文件操作时,我们很多时候想对文件名进行截取,例如去掉文件名的后缀,而只保留剩余的部分。下面介绍使用 ${} 来完成上述任务。

    示例任务

    我们想对 share/home/jianshu_test.txt 进行操作,输出下列内容:

    share
    home/jianshu_test.txt
    jianshu_test
    

    完成对 share 的提取

    file=share/home/jianshu_test.txt
    echo ${file%%/*}
    > share
    

    完成对 home/jianshu_test.txt 的提取

    echo ${file#*/}
    > home/jianshu_test.txt
    

    完成对 jianshu_test 的提取

    要完成这个任务,可以首先把 jianshu_test.txt 提取出来:

    name=$(basename $file)
    

    然后再进行截取:

    echo ${name%.*}
    > jianshu_test
    

    解释

    记住两个原则:

    % 表示对某个字符及其右边的部分进行删除
    # 表示对某个字符及其左边的部分进行删除

    记忆方法:在键盘上,%#右边,所以是对右边的部分进行删除,#则是相反的。

    此外:

    ## 表示最后一个该字符及其左边的部分
    # 表示第一个该字符及其左边的部分
    % 表示最后一个该字符及其右边的部分
    %% 表示第一个该字符及其右边的部分

    记忆方法:当 %# 只出现一次时,其匹配出的范围总是最小的;出现两次时,其匹配出现的范围总是最大的。

    相关文章

      网友评论

          本文标题:Linux对文件名进行操作——截取

          本文链接:https://www.haomeiwen.com/subject/phzekrtx.html