findコマンドを使用して2つの異なるファイルを見つける方法

findコマンドを使用して2つの異なるファイルを見つける方法

ジレンマに落ちた。私のスクリプトは2つの異なるファイルを見つける必要があります。タイムスタンプの1つがD210929他のタイムスタンプと似ています20210929。次の2つのファイルがあります。

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

find私の質問は、コマンドでこれら2つのファイルを見つける方法です。例えば

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

答え1

-name PATTERN次のように複数のパラメータを指定できます。

find . -name PATTERN1 -o -name PATTERN2

答え2

YYYYMMDDシェル変数のフォームに日付があると仮定すると、date日付の最初の2文字を削除するために使用できます${date#??}

これで、2つのパターンまたはをfind使用して、現在のディレクトリまたは現在のディレクトリの下で名前を検索できます。*$date.zip*.D${date#??}.*

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

上記のコマンドは両方のファイルを検索します(または少なくとも2つのファイルを探します)。ファイルに対して特定のタスクを実行したい場合は、-execオプションを使用してユーティリティを呼び出すことができます。findファイルをどのように使用するかを明記していないので、ここで実際の例を提示することは不可能です。

関連情報