使⽤shell脚本判断⽂件后缀的⽅法实例
⽬录
shell脚本判断⽂件后缀
附shell提取⽂件后缀名,并判断其是否为特定字符串
总结
shell脚本判断⽂件后缀
有时候需要判断⽂件名后缀来区分⽂件类型,进⽽进⾏不同的操作。以下是获取⽂件名后缀和⽂件名前缀的两个函数,由于shell脚本函数只能返回0-255,为了将结果返回,就直接使⽤echo输出,可以⽤$()进⾏捕获。
#!/bin/bash
# --------------------------------------------------------------------------- #
# 获取⽂件名后缀
shell代码# Parameter1: ⽂件名
# output: Yes
# return: None
# --------------------------------------------------------------------------- #
function FileSuffix() {
local filename="$1"
if [ -n "$filename" ]; then
echo "${filename##*.}"
fi
}
# --------------------------------------------------------------------------- #
# 获取⽂件名前缀
# Parameter1: ⽂件名
# output: Yes
# return: None
# --------------------------------------------------------------------------- #
function FilePrefix() {
local filename="$1"
if [ -n "$filename" ]; then
echo "${filename%.*}"
fi
}
使⽤⽰例:
# --------------------------------------------------------------------------- #
# 判断⽂件后缀是否是指定后缀
# Parameter1: ⽂件名
# parameter2: 后缀名
# output: None
# return: 0: 表⽰⽂件后缀是指定后缀;1: 表⽰⽂件后缀不是指定后缀
# --------------------------------------------------------------------------- #
function IsSuffix() {
local filename="$1"
local suffix="$2"
if [ "$(FileSuffix ${filename})" = "$suffix" ]; then
return 0
else
return 1
fi
}
file=""
IsSuffix ${file} "txt"
ret=$?
if [  $ret -eq 0 ]; then
echo "the suffix of the ${file} is txt"
fi
附shell提取⽂件后缀名,并判断其是否为特定字符串
如果⽂件是 .css⽂件或 .js⽂件,则进⾏处理。
file=$1
if [ "${file##*.}"x = "css"x ]||[ "${file##*.}"x = "js"x ];then
do something
fi
注意:
1> 提取⽂件后缀名: ${file##*.}
##是贪婪操作符,从左⾄右匹配,匹配到最右边的.号,移除包含.号的左边内容。
2> 是=,⽽且其两边有空格,如果没有空格,会报错
3> 多加了x,是为了防⽌字符串为空时报错。
查当前⽬录下⽂件名中包含.py,.sh,.css,.js,.html时,
for n in `find . -name "*.py" -o -name "*.sh" -o -name "*.css" -o -name "*.js" -o -name "*.html"`; do
something
done
注意:
1> 查当前⽬录下⽂件名末尾字符为.py,或.sh,或.css,或.js,或.html的⽂件,并处理
总结
到此这篇关于使⽤shell脚本判断⽂件后缀的⽂章就介绍到这了,更多相关shell脚本判断⽂件后缀内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!