grep не работает в цикле for по списку

У меня есть некоторые файлы журналов. И у меня есть список идентификаторов пользователей. Мои файлы журналов находятся в определенном формате

log-yyyy-mm-dd eg log-2014-09-30 

Я пытаюсь выполнить поиск каждого пользователя в файле журнала. Это то, что я делаю –

 for userid in 234, 283, 893, 982, 323; do cat log-2014-09-30 | grep -a "user deleted "$userid | tail -1; done 

В идеале он должен искать каждый идентификатор пользователя в файле и печатать последнее совпадение. Затем я буду искать в log-2014-09-29 для остальных идентификаторов пользователей и так далее.

Но это только печать соответствия для последнего идентификатора пользователя.

 INFO - 2014-09-30 22:49:00 - user deleted 323 

Что я делаю не так? пожалуйста, помогите мне.

Избавьтесь от запятых в списке userid. Способ передачи списка в цикл 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