Find

如何使用 find 命令查找兩個不同的文件

  • September 29, 2021

我停留在我的腳本應該找到兩個不同文件的地方。其中一個時間戳就像D210929另一個20210929。我有這兩個文件:

HGIS4C.IOPZ.IP4.CCCP.D210929.S004596.IO99999.19992.1111.CCCP.IP9999
HGS4C.SCS.CCA1.TSILocationContactData20210929.zip

我的問題是如何用find命令找到這兩個文件?例如

find . -name "TBSI4C.[SCS]*.[D]${DATE}" | grep -c TBSI4C 2>/dev/null

假設您YYYYMMDD在 shell 變數中的表單上有一個日期date,您可以用 去掉前兩個字元${date#??}

現在,您可以使用find在目前目錄中或下方搜尋名稱與兩種模式中的任何一種匹配的正常文件*$date.zip*.D${date#??}.*.

find . -type f \( -name "*$date.zip" -o -name "*.D${date#??}.*" \)

上面會找到這兩個文件(或者,它會至少找到這兩個文件)。如果您想對文件執行某些操作,請通過-exec選項呼叫實用程序。find由於您沒有說明您打算如何使用這些文件,因此無法在此處給出實際範例。

你可以指定多個-name PATTERN參數,像這樣

find . -name PATTERN1 -o -name PATTERN2

引用自:https://unix.stackexchange.com/questions/671129