很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等. 下面介绍两种常用的方法来进行相关的操作. 一.使用${} 1.${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的…
很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等.例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等. 下面介绍两种常用的方法来进行相关的操作. 一.使用${} 1.${var##*/} 该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边…
转自http://blog.csdn.net/universe_hao/article/details/52640321 shell 提取文件名和目录名 在写shell脚本中,经常会有需要对路径和文件名做处理.有时候犯不着用sed命令来操作.bash提供的变量操作和一些外部命令都能很好的处理.   一.使用变量操作符 ${} 1.${var##*/} 该方式是从左开始最大化匹配到字符"/",然后截掉左边内容(包括字符"/"),返回余下右侧部分. $ var=/dir…
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…
${}用于字符串的读取,提取和替换功能,可以使用${} 提取字符串 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…
把下列所有.c的文件名修改为.cc rename .c .cc *.c…
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"​ 命令解释如下: grep 'inet'             截取包含ip的行 grep -v '127.0.0.1'     去掉本地指向的那行 grep -v inet6           去掉包含inet6的行 awk '{ print $2}'       $2 表示默认以空格分割的第二组 同理 $1表示…
有些脚本要根据文件名进行各种处理,有时候需要保留文件名抛弃文件后缀,也有时候需要文件后缀不要文件名,这类提取文件部分的操作使用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…
本文主要向大家介绍了Linux运维知识之linux shell date 用当天时间做备份文件名,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. #!/bin/bash #date  显示时间,我们可以用时间的不同做为备份文件的名字,这样以前的备份就不会被覆盖 datename=$(date +%Y%m%d-%H%M%S)             #定义时间变量名和显示时间格式 mkdir /tmp/back/$datename                   #创建与…