1回の作業のために、フォルダ内に5つのファイル名を作成しました。ファイル名は次の形式に従います。
ES_currentdate_currenttime_processid_uniqueid.log
そのパスで最近作成されたファイルの状態を読みたいです。
シェルスクリプトでファイル名を設定する方法は次のとおりです。
$ filename=ES_*_uniqueid.log
$ echo grep "##status##XRB##" $HOME/log/$filename | sort -u` "
grep
5つのファイルすべての状態を読み、エコーするとき。grep
最近作成されたファイルからのみ文字列を取得したいです。
誰でもソリューションを提供できますか?
ベストアンサー1
ファイル名は時系列で作成しても問題になりません。これを使用してtail -1
ファイルリストの最後のファイルを取得します。このファイルは常に最新のファイルでなければなりません。
$ filename=ES_*_uniqueid.log
$ grep "##status##XRB##" $(ls -tr $filename | tail -1)
ls -tr $filename | tail -1
これにより、単一の結果である最新のファイルを返すサブコマンドが実行されます。これにより、一致する文字列を見つけるためにファイルが検索されます##status##XRB##
。