在Linux腳本編程中,通配符(wildcards)可以幫助你處理文件名或路徑名中的不確定部分
*
:匹配任意長度的任意字符。例如,*.txt
可以匹配所有以 .txt
結(jié)尾的文件。?
:匹配任意單個字符。例如,ab?d
可以匹配 abd
或 acd
。[abc]
:匹配方括號內(nèi)的任意一個字符。例如,[ab]d
可以匹配 ad
或 bd
。[!abc]
:匹配不在方括號內(nèi)的任意一個字符。例如,[!ab]d
可以匹配 cd
。{m,n}
:匹配大括號內(nèi)的任意一個字符串。例如,file{1,2}.txt
可以匹配 file1.txt
或 file2.txt
。{m,n,p}
:匹配大括號內(nèi)的任意多個字符串。例如,file{1,2,3}.txt
可以匹配 file1.txt
、file2.txt
或 file3.txt
。以下是一些使用通配符的Linux腳本編程示例:
示例1:列出當(dāng)前目錄下的所有.txt
文件
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
done
示例2:列出當(dāng)前目錄下的所有以a
或b
開頭的文件
#!/bin/bash
for file in [ab]*; do
echo "Processing $file"
done
示例3:列出當(dāng)前目錄下的所有長度為3或4的文件名
#!/bin/bash
for file in ???; do
echo "Processing $file"
done
示例4:列出當(dāng)前目錄下的所有不以a
或b
開頭的文件名
#!/bin/bash
for file in [!ab]*; do
echo "Processing $file"
done
示例5:將當(dāng)前目錄下的所有.txt
文件重命名為backup_*.txt
#!/bin/bash
for file in *.txt; do
mv "$file" "backup_${file}"
done
在編寫腳本時,確保在使用通配符之前對它們進(jìn)行適當(dāng)?shù)囊茫苑乐挂蚩崭窕蛱厥庾址麑?dǎo)致的錯誤。