シェル スクリプトで 2 つのファイルにアクセスする必要があります。唯一の問題は、ファイル名がシステムで生成されるため、ファイル名がどうなるかわからないことです。ファイル名の一部は常に一定ですが、残りはシステムで生成されるため、異なる場合があります。これらのファイルにアクセスする方法がわかりません。
サンプル ファイル名
タイプ1
MyFile1.yyyy-mm-dd_xx:yy:zz.log
この場合、MyFile1 の部分はすべてのファイルで一定であり、他の部分は日付と時刻に基づいて変化することがわかっています。を使用date +%Y-%m-%d
して取得できMyFile1.yyyy-mm-dd_
ますが、正しいファイルを選択する方法がわかりません。毎日、この種のファイルは 1 つしかないことに注意してください。UNIX では、以下のコマンドで正しいファイルが得られます。
unix> ls MyFile1.yyyy-mm-dd*
タイプ2
MyFile2.yyyymmddxxyyxx.RandomText.SomeNumber.txt
このファイルでは、Myfile2 の部分が一般的であることがわかります。ユーザーは Date +%Y%m%d
(現在の日付) まで取得できますMyFile2.yyyymmdd
が、そこから先に進む方法があまり明確ではありません。UNIX では、以下のコマンドで正しいファイルが得られます。また、ファイル 2 の dd 列に以前の日付があります。
unix> ls MyFile2.yyyymmdd*
基本的に私のシェルスクリプトで次の行を探しています
#!/bin/ksh
timeA=$(date +%Y-%m-%d)
timeB=$(date +%Y%m)
sysD=$(date +%d)
sysD=$((sysD-1))
filename1=($Home/folder/MyFile1.$timeA*)
filename2=($Home/folder/MyFile2.$timeB$sysD*)
これら 2 つのファイルの RHS を取得する方法がわかりません。
上記のスクリプトを実行したときの結果は次のとおりです。
Script.ksh[8]: syntax error at line 8 : `(' unexpected