经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
使用shell脚本判断文件后缀的方法实例
来源:jb51  时间:2022/3/2 11:42:39  对本文有异议

shell脚本判断文件后缀

有时候需要判断文件名后缀来区分文件类型,进而进行不同的操作。以下是获取文件名后缀和文件名前缀的两个函数,由于shell脚本函数只能返回0-255,为了将结果返回,就直接使用echo输出,可以用$()进行捕获。

  1. #!/bin/bash
  2.  
  3. # --------------------------------------------------------------------------- #
  4. # 获取文件名后缀
  5. # Parameter1: 文件名
  6. # output: Yes
  7. # return: None
  8. # --------------------------------------------------------------------------- #
  9. function FileSuffix() {
  10. local filename="$1"
  11. if [ -n "$filename" ]; then
  12. echo "${filename##*.}"
  13. fi
  14. }
  15.  
  16. # --------------------------------------------------------------------------- #
  17. # 获取文件名前缀
  18. # Parameter1: 文件名
  19. # output: Yes
  20. # return: None
  21. # --------------------------------------------------------------------------- #
  22. function FilePrefix() {
  23. local filename="$1"
  24. if [ -n "$filename" ]; then
  25. echo "${filename%.*}"
  26. fi
  27. }
  28.  

使用示例:

  1. # --------------------------------------------------------------------------- #
  2. # 判断文件后缀是否是指定后缀
  3. # Parameter1: 文件名
  4. # parameter2: 后缀名
  5. # output: None
  6. # return: 0: 表示文件后缀是指定后缀;1: 表示文件后缀不是指定后缀
  7. # --------------------------------------------------------------------------- #
  8. function IsSuffix() {
  9. local filename="$1"
  10. local suffix="$2"
  11. if [ "$(FileSuffix ${filename})" = "$suffix" ]; then
  12. return 0
  13. else
  14. return 1
  15. fi
  16. }
  17.  
  18. file="demo.txt"
  19.  
  20. IsSuffix ${file} "txt"
  21. ret=$?
  22.  
  23. if [ $ret -eq 0 ]; then
  24. echo "the suffix of the ${file} is txt"
  25. fi

附shell提取文件后缀名,并判断其是否为特定字符串

如果文件是 .css文件 或 .js文件,则进行处理。

  1. file=$1
  2. if [ "${file##*.}"x = "css"x ]||[ "${file##*.}"x = "js"x ];then
  3.  
  4. ? ? do something
  5. fi

注意:

1> 提取文件后缀名: ${file##*.}

    ##是贪婪操作符,从左至右匹配,匹配到最右边的.号,移除包含.号的左边内容。
2> 是=,而且其两边有空格,如果没有空格,会报错

3> 多加了x,是为了防止字符串为空时报错。

查找当前目录下文件名中包含.py,.sh,.css,.js,.html时,

  1. for n in `find . -name "*.py" -o -name "*.sh" -o -name "*.css" -o -name "*.js" -o -name "*.html"`; do
  2.  
  3. ? ?something
  4. done

注意:

1> 查找当前目录下文件名末尾字符为.py,或.sh,或.css,或.js,或.html的文件,并处理

总结 

到此这篇关于使用shell脚本判断文件后缀的文章就介绍到这了,更多相关shell脚本判断文件后缀内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号