zoukankan      html  css  js  c++  java
  • [Shell] 文件名截取的问题:bash .vs. csh

    参考: 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
  • 相关阅读:
    【CODEVS1380】没有上司的舞会
    【poj2248】Addition Chains
    【poj3070】Fibonacci
    【NOIP2006】开心的金明
    【Tyvj1359】收入计划
    【NOIP2015】跳石头
    【CODEVS1219】骑士游历
    暑假假期总结第六周
    暑假假期总结第五周
    暑假假期总结第四周
  • 原文地址:https://www.cnblogs.com/snake553/p/5679582.html
Copyright © 2011-2022 走看看