使用Bash Shell获取文件名和目录名的简单方法

 更新时间:2015年07月30日 11:37:23   作者:低调小一  
这篇文章主要介绍了使用Bash Shell获取文件名和目录名的简单方法,解析路径是通常用Shell来实现的基本功能之一,需要的朋友可以参考下

前言
还是今天再写一个自动化打包脚本,用到了从路径名中获取最后的文件名。这里记录一下实现过程。当然,最后我也会给出官方的做法。(ps:很囧,实现完了才发现原来Bash Shell有现成的函数)

获取文件名
假设给定的路径名为:

 /tmp/csdn/zhengyi/test/zhengyi.txt 

awk解法
用“/”做分隔符,然后打印出最后的那一部分。实现代码如下:

 resFile=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F "/" '{print $NF}'` 

官方解法(basename)
Bash Shell本身提供了basename命令,可以直接获取路径名最后的文件名,实现代码如下:

 resFile=`basename /tmp/csdn/zhengyi/test/adb.log` 


获取目录名
官方解法(dirname)
Bash Shell本身提供了dirname命令,特别方便,可以直接获取路径对应的目录名,实现代码如下:

 dirPath=`dirname /tmp/csdn/zhengyi/test/adb.log` 


awk解法
可以灵活的使用分隔符,混合正则表达式:

 dirPath=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F '/[^/]*$' '{print $1}'` 


awk+for循环的方法:

 echo /tmp/csdn/zhengyi/test/adb.log | awk 'BEGIN{res=""; FS="/";}{ for(i=2;i<=NF-1;i++) res=(res"/"$i);} END{print res}' 

相关文章

  • 收集的48个Shell脚本小技巧

    收集的48个Shell脚本小技巧

    这篇文章主要介绍了收集的48个Shell脚本小技巧,涵盖方方面面,比如获取CPU信息、VI技巧、正则表达式等等,需要的朋友可以参考下
    2014-08-08
  • 使用shell脚本执行hive、sqoop命令的方法

    使用shell脚本执行hive、sqoop命令的方法

    今天小编就为大家分享一篇使用shell脚本执行hive、sqoop命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • shell处理用户输入传递参数的实现

    shell处理用户输入传递参数的实现

    本文主要介绍了shell处理用户输入传递参数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • Linux Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

    Linux Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

    这篇文章主要介绍了Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点,需要的朋友可以参考下
    2016-02-02
  • 分享一个可以通过命令简写执行对应命令的Shell脚本

    分享一个可以通过命令简写执行对应命令的Shell脚本

    这篇文章主要分享了一个可以通过命令简写执行对应命令的Shell脚本,帮助大家更好的理解和使用shell,感兴趣的朋友可以了解下
    2020-12-12
  • shell 脚本中获取命令的输出的实现示例

    shell 脚本中获取命令的输出的实现示例

    本文主要介绍了shell 脚本中获取命令的输出的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Shell编程之特殊变量的笔记小结

    Shell编程之特殊变量的笔记小结

    这篇文章主要介绍了Shell编程之特殊变量的笔记小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • shell sleep睡眠命令的具体使用

    shell sleep睡眠命令的具体使用

    本文主要介绍了shell sleep睡眠命令的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • linux下使用rinetd来实现端口转发

    linux下使用rinetd来实现端口转发

    本文给大家分享的是一个linux下简单好用的工具rinetd,实现端口映射/转发/重定向,有需要的小伙伴可以参考下。
    2015-05-05
  • Shell内置命令之exit的语法与实例

    Shell内置命令之exit的语法与实例

    系统中是有exit命令的,用于退出当前用户的登录状态,但是在 Shell 脚本中,exit 语句是用来退出当前脚本的,下面这篇文章主要给大家介绍了关于Shell内置命令之exit的语法与实例,需要的朋友可以参考下
    2022-03-03

最新评论