• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > 使用Bash Shell获取文件名和目录名的简单方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了bash shell,bash shell是什么,bash shell教程,win10 bash shell,linux bash shell等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

</div>

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

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

</div>

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

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

</div>


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

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

</div>


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

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

</div>


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}' 

</div>

</div>

您可能想查找下面的文章:

  • bash判断文件或文件夹是否存在的shell代码
  • 使用Bash Shell检查文件是否存在的方法
  • Bash中数组的操作教程
  • Bash Shell中的select命令简单使用示例
  • 使用Bash Shell获取文件名和目录名的简单方法
  • 使用Bash Shell对目录中的文件实现递归式拷贝
  • Linux bash Shell中的变量类型详解
  • Bash Shell中忽略大小写的设置方法
  • Shell 编程:Bash空格的那点事
  • Bash Shell 注释多行的几种方法

相关文章

  • Shell 管道及执行顺序分析
  • C语言实现的ls命令源码分享
  • cpu时钟预取实例代码分享
  • exit(-1)或者return(-1)shell得到的退出码为什么是255
  • 一个监控网卡流量的shell脚本
  • Python使用淘宝API查询IP归属地功能分享
  • Linux shell脚本实现CPU预警
  • Shell脚本配合iptables屏蔽来自某个国家的IP访问
  • linux下监控网络流量的脚本
  • 一天一个shell命令 linux文本操作系列-diff命令详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • vtune自动安装脚本分享
    • getcwd cannot access parent directories错误解决方法
    • Shell中判断字符串是否为数字的6种方法分享
    • Shell脚本实现删除一年前文件功能分享
    • hbase shell基础和常用命令详解
    • 监控服务器swap并重启php的Shell脚本
    • Shell脚本实现IP地址合法性判断
    • linux shell脚本基础知识学习
    • linux命令学习之10个网络命令和监控命令
    • Shell脚本定义变量和重新赋值

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有