欢迎来到代码驿站!

Shell

当前位置:首页 > 脚本语言 > Shell

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

时间:2021-06-06 08:46:05|栏目: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}' 

上一篇:shift妙用之解决shell编程中的入参问题

栏    目:Shell

下一篇:shell在指定目录下批量执行sql脚本的实例

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

本文地址:http://www.codeinn.net/misctech/136292.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有