0

このコードを使用して、すべての.logファイルをERROR:本体 (名前ではない) で取得しています。しかし、今日の名前が名前に含まれるファイルだけを選択する方法がわかりませんでした。

ls -1 /fbrms01/dev/Logs/*.log | xargs grep -l "ERROR:"

次の出力が得られます。

/fbrms01/dev/Logs/JB_Authorized_Inventory_End_2013.03.27_17.06.40.log
/fbrms01/dev/Logs/JB_Authorized_Inventory_End_2013.03.27_18.03.05.log
/fbrms01/dev/Logs/JB_Authorized_Inventory_End_2013.03.27_20.54.34.log
/fbrms01/dev/Logs/JB_CreateFormat_2013.03.18_08.27.49.log
/fbrms01/dev/Logs/JB_CreateFormat_2013.03.18_17.21.31.log
/fbrms01/dev/Logs/JB_CreateFormat_2013.03.28_15.30.41.log
/fbrms01/dev/Logs/JB_ExtReservationDetail_2013.03.15_13.06.26.log
/fbrms01/dev/Logs/JB_Report_Master_2013.03.18_09.53.38.log
/fbrms01/dev/Logs/JB_Throughput_Capacity_2013.03.28_16.49.05.log

ファイル名の日付は_yyyy.mm.dd_形式です。UNIXで今日の日付を取得して名前と比較し、それらだけを取得する方法はありますか?

4

2 に答える 2

2

あなたは今日の日付を取得します

TODAY=$(date +"%Y.%m.%d")

次のようにして、特定のパターンのファイルの名前を見つけます。

grep -l ERROR /your/dir/*

as -lpattern は、パターンに一致するファイルを表示します。

$TODAYそのため、名前に次のようなファイルを直接 grep することもできます。

grep -l ERROR /fbrms01/dev/Logs/JB_Authorized_Inventory_End_$TODAY*.log
于 2013-03-29T21:05:05.063 に答える
0

これがあなたが探しているものだと思います:

grep -l "ERROR:" `ls -1 /fbrms01/dev/Logs/*.log | grep "\`date +"%Y.%m.%d"\`"`
于 2013-03-29T21:37:58.373 に答える