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

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

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

$ echo $0
/bin/csh

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

$ echo $
/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 $
/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

[Shell] 文件名截取的问题:bash .vs. csh的更多相关文章

  1. ash, bash, ksh, csh, zsh

    /bin/bash (就是 Linux 预设的 shell, 是现在很多Linux的发行版中默认的shell,综合了其他shell的很多优点.)/bin/ksh (Kornshell 由 AT& ...

  2. Shell字符串截取

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  3. shell中截取字符串的方法总结

    shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  4. 【Shell Basic】source . 与 bash sh 的区别

    一.在命令行窗口执行shell脚本时,source .所执行的脚本中,变量的作用域在当前shell窗口期,而bash.sh在shell脚本执行完了就失效了. dream361@master:~$ ca ...

  5. shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory

    当我们把文件从windows系统中编辑的文件拷贝到linux系统中,如果我们执行文件会保存如下的错: shell脚本报错:-bash: xxx: /bin/bash^M: bad interprete ...

  6. linux shell 的前世今生和流行BASH SHELL的特点

    前言 shell作为用户和操作系统内核交互的接口,也不断的在发展迭代.shell的发展也离不开unix/linux 系统的发展.并且在开源社区对shell的发展也起到了推动作用. 内容思维导图简介 发 ...

  7. shell字符截取

    shell字符截取 截取文本中以vm开头的单词 grep -o vm.* text | cut -d' '  -f1 截取活动主机

  8. Linux Bash Shell字符串截取

    #!/bin/bash#定义变量赋值时等号两边不能有空格,否则会报命令不存在  # 运行shell脚本两种方式 # 1.作为解释参数 /bin/sh test.sh ;  2.作为可执行文件 chmo ...

  9. 【转】shell字符串截取

    shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...

随机推荐

  1. winform 移动窗体,和窗体阴影(引用)

    无边框窗体移动://窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [D ...

  2. 20161127-adt bundle

    1.adt.exe 路径:E:\software\adt-bundle-windows-x86-20131030\sdk\platform-tools\adt.exe 配置环境变量 命令: adb d ...

  3. HDFS shell

    bin/hdfs -help bin/hdfs dfs -mkdir -p /yfq/test/ bin/hdfs dfs -put /etc/profile /yfq/test/profile 上传 ...

  4. 让PictureBox支持URL显示图片

    [ToolboxItem(true)] public class PictureBoxURL : PictureBox { private string _url = ""; pu ...

  5. dsp 28377在线升级 实例总结

    使用dsp品台28377d来实现在线升级的功能. 方案 : 升级程序  +  应用程序 升级程序 : 主要的目的是将上位机发送过来的应用程序数据(ccs编译生成的.bin文件)烧写到指定位置,之后在跳 ...

  6. DataTables 自定义

    自定义取的参数方法 getQueryCondition = function(data) { var param = {}; ]) { param.order =data.columns[data.o ...

  7. system_call中断处理过程

    张雨梅   原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10000 1.给menuos添加命令 改 ...

  8. 正确使用ng-if和ng-show

    在使用bootstrap中,我们会经常用到按钮组,也就是btn-group,如果仔细观察的话,会发现一个按钮组的第一个和最后一个按钮分别是有圆角的,如下图: 但是中间的按钮是没有圆角的,这样显得比较美 ...

  9. 慕课网__CSS_网页图标制作

    参考地址:http://www.flowerboys.cn/font/article/fontsArticle/how-to-turn-your-icons-into-a-web-font.html

  10. mysql事务处理

    事务处理能保证所有的sql操作一次性完成或回滚,mysql默认的MyISAM表类型是不支持事务处理的,如果需要做事务处理,需要把表类型换成InnoDB <?php $dsn='mysql:hos ...