欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/5/22 编程问答 83 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。