[Shell] 文件名截取的问题:bash .vs. csh
生活随笔
收集整理的這篇文章主要介紹了
[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
?
轉載于:https://www.cnblogs.com/snake553/p/5679582.html
總結
以上是生活随笔為你收集整理的[Shell] 文件名截取的问题:bash .vs. csh的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 絮语----工作四年的碎碎念
- 下一篇: 上传的镜像无法用来启动云主机