使用shell腳本判斷文件後綴的方法實例
shell腳本判斷文件後綴
有時候需要判斷文件名後綴來區分文件類型,進而進行不同的操作。以下是獲取文件名後綴和文件名前綴的兩個函數,由於shell腳本函數隻能返回0-255,為瞭將結果返回,就直接使用echo輸出,可以用$()進行捕獲。
#!/bin/bash # --------------------------------------------------------------------------- # # 獲取文件名後綴 # 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="demo.txt" 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腳本判斷文件後綴內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- linux shell 編程之函數使用詳解
- linux下shell腳本備份文件的方法實現
- Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用
- Shell之function函數的定義及調用示例
- Shell退出狀態的使用