• 技术文章 >运维 >linux运维

    如何在Shell脚本中提取文件名和扩展名

    不言不言2019-03-19 15:50:37原创8698
    有时你可能需要在不同的变量中提取文件名和扩展名来完成bash shell编程中的任务。本篇文章将介绍从完整的文件名或路径中提取文件名和文件扩展名。

    以下是详细的内容

    1、获取没有路径的文件名:

    首先从输入文件名中删除完整的文件路径。例如,如果文件名输入为/etc/apache2/apache2.conf,则仅提取完整文件名为apache.conf.

    #!/bin/bash
    
    fullfilename="/etc/apache2/apache2.conf"
    filename=$(basename "$fullfilename")
    echo $filename

    2、没有扩展名的文件名:

    现在,从提取的不带路径的完整文件名中提取不带扩展名的文件名,如下所示。

    #!/bin/bash
    fullfilename="/etc/apache2/apache2.conf"
    filename=$(basename "$fullfilename")
    fname="${filename%.*}"
    echo $fname

    3、没有名称的文件扩展名:

    现在从提取的不带路径的完整文件名中提取不带名称的文件扩展名。

    #!/bin/bash
    
    fullfilename="/etc/apache2/apache2.conf"
    filename=$(basename "$fullfilename")
    ext="${filename##*.}"
    echo $ext

    4、测试:

    最后在一个shell脚本中测试所有内容。使用以下内容创建新的脚本文件。在执行脚本期间,文件名将作为命令行参数传递。

    #!/bin/bash
    
    fullfilename=$1
    filename=$(basename "$fullfilename")
    fname="${filename%.*}"
    ext="${filename##*.}"
    
    echo "Input File: $fullfilename"
    echo "Filename without Path: $filename"
    echo "Filename without Extension: $fname"
    echo "File Extension without Name: $ext"

    我们以文件名作为命令行参数来执行脚本。

    $ ./script.sh /etc/apache2/apache2.conf
    
    Input File: /etc/apache2/apache2.conf
    Filename without Path: apache2.conf
    Filename without Extension: apache2
    File Extension without Name: conf

    本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的Linux教程视频栏目!

    以上就是如何在Shell脚本中提取文件名和扩展名的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Shell
    上一篇:如何让shell访问正在运行的Docker容器 下一篇:linux中如何使用SCP命令安全地传输文件?(代码示例)
    Web大前端开发直播班

    相关文章推荐

    • 如何利用shelljs实现前端的自动化部署的方法• 怎么使用Xshell连接服务器并安装JDK• php中shell_exec() 与 exec()函数的区别• PHP希尔(Shell)排序算法的实现(代码详解)• 如何让shell访问正在运行的Docker容器

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网