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

时间: 2024-11-06 13:29:52

Bash Shell 解析路径获取文件名称和文件夹名的相关文章

Bash Shell 解析路径获取文件名和目录名

前言 还是今天再写一个自动化打包脚本,用到了从路径名中获取最后的文件名.这里记录一下实现过程.当然,最后我也会给出官方的做法.(ps:很囧,实现完了才发现原来Bash Shell有现成的函数) 获取文件名 假设给定的路径名为: /tmp/csdn/zhengyi/test/zhengyi.txt awk解法 用"/"做分隔符,然后打印出最后的那一部分.实现代码如下: resFile=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F "

一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 @for&ever 2010-07-03 功能: 获取指定目录下面符合一定规则的文件名称和文件修改时间,并保存到指定的文件中 脚本如下: #!/usr/bin/env python# -*- coding: utf-8 -*- '''Created on 2010-7-2 @author: fore

【.Net】C# 根据绝对路径获取 带后缀文件名、后缀名、文件名、不带文件名的文件路径

1.c#根据绝对路径获取 带后缀文件名.后缀名.文件名. 1 string str =" F:\test\Default.aspx"; 2 string filename = System.IO.Path.GetFileName(str);//文件名 "Default.aspx" 3 string extension = System.IO.Path.GetExtension(str);//扩展名 ".aspx" 4 string fileNam

c#根据绝对路径获取 带后缀文件名、后缀名、文件名

zz   C#根据绝对路径获取 带后缀文件名.后缀名.文件名 1.c#根据绝对路径获取 带后缀文件名.后缀名.文件名. string str =" F:\test\Default.aspx";                string filename = System.IO.Path.GetFileName(str);//文件名 “Default.aspx”                string extension = System.IO.Path.GetExtension(

8.15_Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用

bash shell脚本编程入门篇(二) read命令的使用 作用: 使用read来把输入值分配给一个或多个shell变量: -p指定要显示的提示 -t TIMEOUT read从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量 EX.read -p "Enter a filename:" FILE 条件选择之if的使用 if的作用:选择执行(注意:if语句可嵌套) 单分支 if 判断条件;then 条件为真的分支代码 fi EX.单分支案例 双分支 if

【linux】shell代码,获取当前路径,创建文件夹

#!/bin/bash CURRENT_PATH=`dirname $0` cd $CURRENT_PATH MY_LOG=/var/log MY_DB=/var/lib/db [ ! -d $MY_LOG ] && mkdir -p ${MY_LOG} [ ! -d $MY_DB ] && mkdir -p ${MY_DB} 代码如上,注意 dirname $0 可以获取当前路径 [ ! -d $MY_LOG ] && mkdir -p ${MY_LOG}

批量获取文件名称和路径

1.新建bat文件,将bat文件放入同一文件夹 2.获取jpg格式文件名称,LIST.TEXT为文件名称保存文件 代码:DIR *.jpg  /B >LIST.TXT 3.获取所有格式文件名称 代码:DIR *.* /B >LIST.TXT 4.获取jpg格式文件完整路径 代码:DIR /s/b *.jpg > LIST.TXT exit 5.想去掉LIST中名称后缀 将LIST内容拷贝到excel中,使用FIND和RIGHT函数来去除后缀 原文地址:https://www.cnblog

获取当前Javascript脚本文件的路径

获取当前Javascript脚本文件的路径 获取当前Javascript脚本文件的路径,在特定场景下可能需要,比如写模块加载器,或者进行日志记录.并没有统一的方法适用于所有浏览器,本文分几种情况进行说明. (1). 标准做法: document.currentScript 对象的src属性 适用于Firefox 4+, Chrome 29+, Opera 16+, Safari 8+. var src = document.currentScript.src; (2). 从Error对象的sta

Linux命令行–基本的bash shell命令

启动shell: /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 用户名 用户密码 用户的系统UID 用户的系统GID 用户的全名 用户的默认主目录 用户的默认shell程序 如:zmcheng:x:501:501:zhangmingcheng:/home/zmcheng:/bin/bash 默认情况下,bash shell启动时会自动处理用户主目录下.bashrc文件中的命令 shell 提示符: PS1:控制默认命令行提示符的格