zoukankan      html  css  js  c++  java
  • 【shell】分别提取文件名中的基本名与扩展名

    文件名是有【基本名】与【扩展名】两部分构成

    image

     

    1.借助【%】操作符从文件名中提取基本名部分

    Linux:/qinys # file_name='get_name.tar.gz'
    Linux:/qinys # name=${file_name%.*}
    Linux:/qinys # echo "The File name is :"$name
    The File name is :get_name.tar

    从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:get_name.tar

    原理说明:

    (1)从file_name中删除位于%右侧的通配符(上例中的是.*)所匹配到的字符串。通配符从右往左进行匹配

    (2)%属于非贪婪操作,它从右向左找出匹配通配符的最短结果。

    2.借助【%%】操作符从文件名中提取基本名部分

    Linux:/qinys # file_name='get_name.tar.gz'
    Linux:/qinys # name=${file_name%%.*}
    Linux:/qinys # echo "The File name is :"$name
    The File name is :get_name

    从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:get_name

    原理说明:

    (1)从file_name中删除位于%%右侧的通配符(上例中的是.*)所匹配到的字符串。通配符从右往左进行匹配

    (2)%%属于贪婪操作,它从右向左找出匹配通配符的最长结果。

     

    3.借助【#】操作符从文件名中提取扩展名部分

    Linux:/qinys # file_name='get_name.tar.gz'
    Linux:/qinys # name=${file_name#*.}
    Linux:/qinys # echo "The Extension name is :"$name
    The Extension name is :tar.gz

    从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:tar.gz

    原理说明:

    (1)从file_name中删除位于#右侧的通配符(上例中的是*.)所匹配到的字符串。通配符从左往右进行匹配

    (2)#属于非贪婪操作,它从左向右找出匹配通配符的最短结果。


    4.借助【##】操作符从文件名中提取扩展名部分

    Linux:/qinys # file_name='get_name.tar.gz'
    Linux:/qinys # name=${file_name##*.}
    Linux:/qinys # echo "The Extension name is :"$name
    The Extension name is :gz

    从输出结果我们可以看出,已经成功从文件名get_name.tar.gz中提取基本名:gz

    原理说明:

    (1)从file_name中删除位于##右侧的通配符(上例中的是*.)所匹配到的字符串。通配符从左往右进行匹配

    (2)##属于贪婪操作,它从左向右找出匹配通配符的最长结果。

  • 相关阅读:
    安装Hadoop
    爬虫综合大作业
    理解爬虫原理
    中文词频统计与词云生成
    复合数据类型,英文词频统计
    字符串操作、文件操作,英文词频统计预处理
    了解大数据的特点、来源与数据呈现方式
    结对项目-四则运算 “软件”之升级版
    分布式版本控制系统Git的安装与使用
    Maven 依赖的scope标签用法
  • 原文地址:https://www.cnblogs.com/OliverQin/p/10246038.html
Copyright © 2011-2022 走看看