いくつかのログファイルがあります。そして、私はユーザーIDのリストを持っています。私のログファイルは特定の形式です
log-yyyy-mm-dd
e.g. log-2014-09-30
ログファイル内の各userIdを検索しようとしています。これが私がしていることです-
for userid in 234, 283, 893, 982, 323; do cat log-2014-09-30 | grep -a "user deleted "$userid | tail -1; done
理想的には、ファイル内の各ユーザーIDを検索し、最後に一致したものを出力する必要があります。次に、log-2014-09-29
で残りのユーザーIDなどを検索します。
ただし、最後のユーザーIDの一致のみを出力します。
INFO - 2014-09-30 22:49:00 - user deleted 323
私は何が間違っているのですか?私を助けてください。
ユーザーIDリストのコンマを削除します。リストをforループに渡す方法は、コンマ区切りではなく、スペース区切りの値をリストに与えることです。
for userid in 234, 283, 893, 982, 323; do echo "$userid";done
プリント
234,
283,
893,
982,
323
だが
for userid in 234 283 893 982 323; do echo "$userid";done
プリント
234
283
893
982
323
だから、あなたはする必要があります
for userid in 234 283 893 982 323; do
grep -a "user deleted $userid" log-2014-09-30 | tail -n 1
done