一·简介

提取文件名称或者目录,一般都会使用到#,##,%和%%,但是他们的区别很容易记混淆了。在一下4种方式中,目标匹配字符是不在结果中。

#:表示从左开始算起,并且截取第一个匹配的字符

##:表示从左开始算起,并且截取最后一个匹配的字符

%:表示从右开始算起,并且截取第一个匹配的字符

%%:表示从右开始算起,并且截取最后一个匹配的字符

二·例子

当前有一个文件名称为1_2_3_4.txt,把文件名称赋值给变量var

1.echo "${var#*_}"输出结果为:2_3_4.txt。此时从左开始截取第一个匹配上'_'的字符串,即1和随后的‘_’被截断了;

2.echo "${var##*_}"输出结果为:4.txt。此时从左开始截取最后一个匹配上'_'的字符串,即“1_2_3_”被截断了;

3.echo "${var%_*}"输出结果为:1_2_3。此时从右开始截取第一个匹配上'_'的字符串,即“_4.txt”被截断了;

4.echo "${var%%_*}"输出结果为:1。此时从右开始截取最后一个匹配上‘_’的字符串,即“_2_3_4.txt”被截断了

三.Shell脚本提取文件名称和所在的目录的更多相关文章

  1. shell脚本新建文件夹或用到目录时多出M或者?之类的

    新建问价加多出? 删除多显示M   建立软连接多\n等 可能是文件兼容问题, 1.首先用vi命令打开文件[root@localhost test]# vi test.sh   2.在vi命令模式中使用 ...

  2. (转)shell脚本之文件测试操作符及整数比较符

    shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一 ...

  3. shell脚本中文件测试

    shell脚本中文件测试 author:headsen chen  2017-10-17  14:35:19 个人原创,转载请注明作者,否则 依法追究法律责任 [ -f  filename  ]   ...

  4. Shell脚本统计文件行数

    Shell脚本统计文件行数 转自 http://www.jb51.net/article/61943.htm    示例:row_count.sh文件 awk '{print NR}' row_cou ...

  5. shell 脚本大文件处理

    shell  脚本大文件处理 字符串处理 s='{"_id":{"$oid":"59b73d80930c17474f9f050d"},&qu ...

  6. shell脚本从文件夹中递归提取文件

    需求 前两天碰到需要在十层左右的文件夹中提取文件的需求,于是写了此脚本. 如下面这样的文件结构: dir1 ├── a │ ├── b │ │ └── file1 │ └── file2 ├── c ...

  7. shell脚本—根据文件个数定时备份

    最近在了解Jenkins时,出现这样一个问题:linux ext3系统目录下的子目录个数不能超过31998个(参考:http://www.xshell.net/linux/1267.html),但je ...

  8. 用shell脚本新建文件并自动生成头说明信息

    目标: 新建文件后,直接给文件写入下图信息 代码实现: [root@localhost test]# vi AutoHead.sh #!/bin/bash #此程序的功能是新建shell文件并自动生成 ...

  9. shell脚本实现文件的自动上传以及下载 scp sftp lftp 还有expect命令

    转至: 最近需求要求定期从一个[定期更新的文件] 中解析员工信息 ,插入到数据库中. 按理来说很简单,  无非就是io流读文件,然后crud balalalala..... 其实不是的, 我我写的这个 ...

随机推荐

  1. 一:SpringDataJPA

    一:spring data jpa介绍 spring data:其实spring data就是spring提供了一个操作数据的框架.而spirng data jpa只是spring data框架下的一 ...

  2. python 之 os._exit() sys.exit() 、exit()

    sys.exit 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 退出程序引发SystemExit异常,(这是唯一一个不会被认为是 ...

  3. 运行tomcat7w.exe,提示:指定的服务未安装unable to open the service tomcat7

    这是服务没安装,到tomcat的bin目录下运行 service.bat install 即可

  4. DOM节点常见的属性及操作

    (1)常见节点属性 childNodes      子节点 nodeList children      子节点(元素节点) HTMLCollection parentNode       父节点 p ...

  5. TCP keepalive长连接心跳保活

    比如:客户端与服务端进行握手时,经常无法握手成功,收不到回复: 需要建立保活机制. 1. 服务端Linux服务器新增系统内核参数配置. 在/etc/sysctl.conf文件中再添加如: #允许的持续 ...

  6. csharp: Converting chinese character to Unicode

    Function chinese2unicode(Str) Dim Str_one:Str_one = "" Dim Str_unicode:Str_unicode = " ...

  7. HTML5拖拽功能中 dataTransfer对象详解

    有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...

  8. Codeforces183D T-shirt

    传送门 这题好神啊……(然而我连每种物品贡献独立都没看出来…… 首先$O(n^2 m)$的DP肯定都会写,然后可以发现每种物品一定是选得越多再选一个的收益就越低,因此可以用一个堆维护当前收益最高的物品 ...

  9. 【Android】11.0 UI开发(二)——列表控件ListView的简单实现1

    ************************ 转载请注明出处:https://www.cnblogs.com/xiaofu007/p/10342462.html ***************** ...

  10. JavaScript String对象常用方法

    length 返回字符串的长度(字符数) var str='Hello World!'; str.length; charAt() 返回指定位置的字符,第一个字符位置为0 var str='Hello ...