参考: http://bbs.chinaunix.net/thread-1825455-1-1.html

但是, 经常处理更复杂的文件名, 这里给出一个加长版的例子, 换汤不换药.

查询当前shell正在使用的是哪个shell, 可以用命令:

$ echo $0/bin/csh

在csh中, 文件名截取有以下几种方式, 按最后一次 '/' 和 '.' 号出现的位置对包括完整路径的文件名进行分割。

$ echo $0
/bin/csh
$ set pfName=/media/Test/MyFile.tar.gz
$ echo ${pfName:r}
/media/Test/MyFile.tar
$ echo ${pfName:e}
gz
$ echo ${pfName:t}
MyFile.tar.gz
$ echo ${pfName:h}
/media/Test
$ echo ${pfName:r:t}
MyFile.tar

在bash中,对包含完整路径的文件名截取的方式如下:

$ /bin/bash
$ echo $0
/bin/bash
$ pfName='/media/Test/MyFile.tar.gz'# 获取全路径文件名
$ echo ${pfname}
/media/Test/MyFile.tar.gz
# 获取后缀以外的完整文件名
$ echo ${pfName%.*}
/media/Test/MyFile.tar# 获取文件的后缀名
$ echo ${pfName##*.}
gz# 获取文件名
$ echo ${pfName##*/}
MyFile.tar.gz$ # 仅仅获取文件的前缀
$ echo ${pfName##*/} | sed -r 's/^(.*)\..*$/\1/g'
MyFile.tar# 获取该文件的位置
$ echo ${pfName%/*}        # comment here only */
/media/Test

转载于:https://www.cnblogs.com/snake553/p/5679582.html

[Shell] 文件名截取的问题:bash .vs. csh相关推荐

  1. linux几种常见的Shell:sh、bash、csh、tcsh、ash

    Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux.例如: Linux 内核最初由芬兰黑客 ...

  2. 几种常见的Shell:sh、bash、csh、tcsh、ash

    Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux.例如: Linux 内核最初由芬兰黑客 ...

  3. Linux常见shell:sh、bash、csh、tcsh、ash

    Linux有很多shell,不同的组织机构开发了不同的 Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验. Shell 既是一种脚本编程语言,也是一个连接 ...

  4. shell字符串截取总结

    shell中截取字符串的方法有很多中,本人对其中几种常用的进行整理总结. 0x01.grep 在文件中搜寻字符串匹配的行并输出 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式 ...

  5. Bash与Csh的区别

    zz :http://dangdanding.blog.163.com/blog/static/27992981201262595221896/ 一.csh的while循环控制结构及if then: ...

  6. bash 与 csh 区别

    BASH中的算术运算表达式 定义变量: Var=2 Var1=3 Var2=4 可用的写法: 1.Var=$[$Var1 + $Var2] 或 Var=$[$Var1 + 1] 2.Var=$[Var ...

  7. shell各种截取*(要你想要的)

    脚本之家服务器常用软件源市场脚本云 手机版 投稿中心 关注微信 快捷导航  网站首页 网页制作 网络编程 脚本专栏 脚本下载 数据库 服务器 电子书籍 操作系统 网站运营 其它 vbs DOS/BAT ...

  8. linux bash csh 选择,关于linux:bash vs csh vs others-哪个对应用程序维护更好?

    本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: What Linux shell should I use? 我开始精通Linux环境,并且我正在尝试从命令Shell脚 ...

  9. Linux Shell字符串截取(非常详细):#左边开始截取、%右边开始截取、指定位置截取

    演示 Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取. 从指定位置开始截取 这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串 ...

最新文章

  1. 预训练后性能反而变差,自训练要取代预训练了吗?
  2. 参数估计:最大似然、贝叶斯与最大后验
  3. 我想做一个课程表系统利用PHP+MYSQL+HTML实现课表的展示,但是不知道如何实现
  4. 数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解
  5. Java进阶:Spring Boot连接MySQL8.0配置
  6. 西门子界面官方精美触摸屏+WINCC程序模板 西门子官方触摸屏程序模板,炫酷的扁平式动画效果
  7. 三层交换技术与链路聚合
  8. 为什么用CDN给你网站加速?
  9. LP前缀是什么意思?
  10. 万豪国际集团在华运营酒店超过400家
  11. 解决网卡驱动不可用 Intel(R) Wireless-AC 9462黄色感叹号
  12. 什么是disjoint-support?
  13. 记一次攻防演练之vcenter后渗透利用
  14. 思岚科技—SLAMTEC将自家研发技术应用到更多行业中
  15. 应用楼宇自控系统降低建筑物设备成本
  16. Spring MVC上传图片,Java二…
  17. 2020教师节送老师什么礼物好呢?
  18. android工具类怎么写,用kotlin写了一些android常用的一些工具类
  19. c#带参数调用存储过程
  20. 网狐荣耀6701,6801(系列十)手机端热更新

热门文章

  1. C# 要调用VC++ DLL时参数问题请看这个
  2. 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)
  3. 关于vs中代码生成的运行库
  4. Kotlin的2017年总结与2018年展望
  5. Linux tomcat日志分割按天分割
  6. 查看LoadRunner脚本请求日志和服务器返回值方法
  7. ThreadPool.QueueUserWorkItem的用法
  8. 如何在VB例程中接收自定义消息
  9. mysql-front 无法连接本机mysql.
  10. jQuery on()方法