Linux通配符在Shell腳本中的常見(jiàn)用法

小樊
86
2024-09-03 01:57:51

在Shell腳本中,通配符(wildcards)是一種模式匹配的方式,用于匹配文件名或路徑

  1. 星號(hào)(*):匹配任意長(zhǎng)度的字符串。例如,*.txt 會(huì)匹配所有以 .txt 結(jié)尾的文件。
#!/bin/bash
for file in *.txt; do
  echo "Processing $file"
done
  1. 問(wèn)號(hào)(?):匹配單個(gè)字符。例如,file?.txt 會(huì)匹配 file1.txt、file2.txt 等,但不會(huì)匹配 file10.txt。
#!/bin/bash
for file in file?.txt; do
  echo "Processing $file"
done
  1. 方括號(hào)([]):匹配方括號(hào)內(nèi)的任意一個(gè)字符。例如,[a-z].txt 會(huì)匹配以小寫字母開(kāi)頭的 .txt 文件。
#!/bin/bash
for file in [a-z].txt; do
  echo "Processing $file"
done
  1. 大括號(hào)({}):匹配大括號(hào)內(nèi)的任意一個(gè)模式。例如,{file1,file2}.txt 會(huì)匹配 file1.txtfile2.txt
#!/bin/bash
for file in {file1,file2}.txt; do
  echo "Processing $file"
done
  1. 反斜杠(\):用于轉(zhuǎn)義特殊字符,使其成為普通字符。例如,\*.txt 會(huì)匹配文件名為 *.txt 的文件,而不是所有以 .txt 結(jié)尾的文件。
#!/bin/bash
for file in \*.txt; do
  echo "Processing $file"
done

這些通配符可以組合使用,以創(chuàng)建更復(fù)雜的匹配模式。在編寫Shell腳本時(shí),熟練掌握這些通配符的用法可以幫助你更高效地處理文件和目錄。

0