使用shell腳本判斷文件后綴的方法實(shí)例
shell腳本判斷文件后綴
有時(shí)候需要判斷文件名后綴來區(qū)分文件類型,進(jìn)而進(jìn)行不同的操作。以下是獲取文件名后綴和文件名前綴的兩個(gè)函數(shù),由于shell腳本函數(shù)只能返回0-255,為了將結(jié)果返回,就直接使用echo輸出,可以用$()進(jìn)行捕獲。
#!/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文件,則進(jìn)行處理。
file=$1 if [ "${file##*.}"x = "css"x ]||[ "${file##*.}"x = "js"x ];then ? ? do something fi
注意:
1> 提取文件后綴名: ${file##*.}
##是貪婪操作符,從左至右匹配,匹配到最右邊的.號(hào),移除包含.號(hào)的左邊內(nèi)容。
2> 是=,而且其兩邊有空格,如果沒有空格,會(huì)報(bào)錯(cuò)
3> 多加了x,是為了防止字符串為空時(shí)報(bào)錯(cuò)。
查找當(dāng)前目錄下文件名中包含.py,.sh,.css,.js,.html時(shí),
for n in `find . -name "*.py" -o -name "*.sh" -o -name "*.css" -o -name "*.js" -o -name "*.html"`; do ? ?something done
注意:
1> 查找當(dāng)前目錄下文件名末尾字符為.py,或.sh,或.css,或.js,或.html的文件,并處理
總結(jié)
到此這篇關(guān)于使用shell腳本判斷文件后綴的文章就介紹到這了,更多相關(guān)shell腳本判斷文件后綴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux shell中單引號(hào)、雙引號(hào)、反引號(hào)、反斜杠的區(qū)別
shell可以識(shí)別4種不同類型的引字符號(hào): 單引號(hào)字符' 雙引號(hào)字符" 反斜杠字符\ 反引號(hào)字符`的區(qū)別,學(xué)習(xí)shell編程的朋友可以看下2013-01-01Shell腳本查看網(wǎng)卡實(shí)時(shí)流量
這篇文章主要介紹了Shell腳本查看網(wǎng)卡實(shí)時(shí)流量,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12如何使用shell獲取進(jìn)程名的內(nèi)存以及CPU利用率
最近工作中遇到一個(gè)需求,需要找出占用高的進(jìn)程,所以下面這篇文章主要給大家介紹了關(guān)于如何使用shell獲取進(jìn)程名的內(nèi)存以及CPU利用率的相關(guān)資料,需要的朋友可以參考下2022-04-04shell實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要介紹了shell實(shí)現(xiàn)圖書管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01awk實(shí)現(xiàn)Left、join查詢、去除重復(fù)值以及局部變量講解例子
這篇文章主要介紹了awk實(shí)現(xiàn)Left、join查詢、去除重復(fù)值以及局部變量講解例子,awk的高級(jí)使用技巧,需要的朋友可以參考下2014-07-07Shell腳本實(shí)現(xiàn)猜數(shù)字游戲
這篇文章主要為大家詳細(xì)介紹了Shell腳本實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04