ジレンマに落ちた。私のスクリプトは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
ファイルをどのように使用するかを明記していないので、ここで実際の例を提示することは不可能です。