Linux shell 提取文件名和目录名】的更多相关文章

很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等. 下面介绍两种常用的方法来进行相关的操作. 一.使用${} 1.${var##*/} 该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边…
${}用于字符串的读取,提取和替换功能,可以使用${} 提取字符串 1.提取文件名 [root@localhost log]# var=/dir1/dir2/file.txt [root@localhost log]# echo ${var##*/} file.txt 2.提取后缀 [root@localhost log]# echo ${var##*.} txt 3.提取不带后缀的文件名,分两步 [root@localhost log]# tmp=${var##*/} [root@localh…
转自http://blog.csdn.net/universe_hao/article/details/52640321 shell 提取文件名和目录名 在写shell脚本中,经常会有需要对路径和文件名做处理.有时候犯不着用sed命令来操作.bash提供的变量操作和一些外部命令都能很好的处理.   一.使用变量操作符 ${} 1.${var##*/} 该方式是从左开始最大化匹配到字符"/",然后截掉左边内容(包括字符"/"),返回余下右侧部分. $ var=/dir…
很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等. 下面介绍两种常用的方法来进行相关的操作. 一.使用${} 1.${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的…
概述 使用 shell 替换 文件名中的空格 背景 尝试用 find 配合 xargs, 在多个文件里找关键字 出现了问题 有空格的文件名, 并不是很好处理 准备 os centos7 1. 问题: 文件名中的空格 场景 需要在多个文本里, 查找某个关键字 方法 find 配合 xargs 问题 文件名里有空格 结果 xargs 会把 带有空格的文件名, 当做多个文件 处理 使用 -i {} 处理 结果 可以找出来了 但是会丢失 文件名 所以, 还是得换别的思路来处理 2. 处理思路 1. 思路…
有时,rz上传文件失败或者不小心输入命令会产生乱码文件名.因为用rm 删除特殊字符基本无效,故找到了下面两种简单易用的方法: 例子: [langxiaowei@mirror:~]$ ls ??    ??b??g?????E#?藠?T ?7?%??S?^d??X???b戮  falcon-agent-5.1.0.tar.gz 1.rm命令 rm ./* 因为rm命令再删除文件前都会询问,故我们可以利用rm询问机制删掉乱码文件. 确认要删除的乱码文件输入y,其他回复n.期间可以用ctrl+c随时结…
问题:linux系统中文件名包含中文,导致页面访问不了文件.就是上条博客中的解决方法二遗留问题. 文件名中有以下格式:TC2_诺而达铜管(中山)有限公司.pdf ,要改为TC2.pdf,去掉中文部分 1.先了解linux 获取文件名,截取字符串的方法:使用${}.原文地址:https://blog.csdn.net/fengmm521/article/details/78446475 1)${var##*/} 该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算…
Linux shell 中提取zip或jar文件中的某个文件 假如有个压缩包 abc.jar, 里面文件如下 (可以用unzip -l abc.jar 查看): data/1.txt data/2.txt 那就可以如下提取里面指定的文件到指定的位置,但上级目录将不会被创建.不加-d参数就解压到当前目录,-d参数可以指定不存在的目录,会自动创建.解压得到的文件名不变. unzip -j abc.jar data/2.txt -d /tmp/data_in_abc…
有些脚本要根据文件名进行各种处理,有时候需要保留文件名抛弃文件后缀,也有时候需要文件后缀不要文件名,这类提取文件部分的操作使用shell的内建功能就能实现.需要用到的几个操作符有:%.%%.#.##. 从右向左匹配 :% 和 %% 操作符的示例 #!/bin/bash #提取文件名,删除后缀. file_name="text.gif" name=${file_name%.*} echo file name is: $name 输出结果: file name is: test # ${V…
 需求背景: 目录A用来存放自动化的包生成的apk文件,现在开发修改了包名的 命名规则:环境名称(pro|uat)-release-日期-v版本号.apk 原来的是思路是通过正则表达式匹配新的包名,但是发现在shell脚本中使用正则表达式,我目前对于如何验证 正则表达式在shel脚本中是生效的,还理不清楚. 通过万能的搜索引擎,又找到了另一种方法:更简单直接 直接获取指定目录下的apk名字,然后重命名为一个固定的名字,这样就方便我使用了(通过python脚本上传apk至蒲公英 ) 原文件名: p…