Тот факт, что распознается только последний хэш, может указывать на проблему с окончанием строки во всех строках, кроме последней.
Я тестировал это в своей системе (Ubuntu 14.04; grep (GNU grep) 2.16) со следующими файлами:
$ cat culls.txt
h00
h10
h20
h30
h40
$ cat culls2.txt
h00
h10
h20
h30
h40
$ cat hashes.txt
h04
h11
h13
h30
h61
h40
h41
h39
h42
$ file culls.txt hashes.txt culls2.txt
culls.txt: ASCII text
hashes.txt: ASCII text
culls2.txt: ASCII text, with CRLF line terminators
Результат, который я получаю с помощью culls.txt
, соответствует ожиданиям ( h30
и h40
удалены из вывода):
$ grep -v -F -f culls.txt hashes.txt
h04
h11
h13
h61
h41
h39
h42
Вывод, который я получаю с помощью culls2.txt
, похож на то, что вы видите (только h40
] удален из вывода; h30
все еще там):
$ grep -v -F -f culls2.txt hashes.txt
h04
h11
h13
h30
h61
h41
h39
h42
В последней строке culls2.txt
нет окончаний строк.
Когда я также добавил терминатор строки CRLF в последнюю полученную строку:
$ grep -v -F -f culls3.txt hashes.txt
h04
h11
h13
h30
h61
h40
h41
h39
h42
Теперь хеши не удаляются из вывода.
Это доказывает, что проблема заключается в ограничителях линии CRLF.
Хотя этот пост немного устарел, я хотел бы отметить, что есть несколько способов объявить его в одном и том же таймере:
Each component can be specified as a list of values separated by commas.
В вашем случае, поскольку меняется только один компонент, я бы рекомендовал использовать это решение. У вас почти получилось, запятую нужно поставить между вхождениями одного и того же компонента:
OnCalendar=10,21:00
OnCalendar=
:May be specified more than once, in which case the timer unit will trigger whenever any of the specified expressions elapse.
Если меняются несколько компонентов, то я бы рекомендовал использовать это второе решение:
OnCalendar=Mon..Wen 10:00
OnCalendar=Thu..Fri 21:00
Is it possible to have it run at multiple moments by declaring it in the same timer?
Да.
См. этот отрывок изman systemd.timer
(курсив мой):
OnCalendar= Defines realtime (i.e. wallclock) timers with calendar event expressions. See systemd.time(7) for more information on the syntax of calendar event expressions. Otherwise, the semantics are similar to OnActiveSec= and related settings. Note that timers do not necessarily expire at the precise time configured with this setting, as it is subject to the AccuracySec= setting below. May be specified more than once.
Вот рабочий пример, который я использую:
[Timer]
OnCalendar=Mon-Sun *-*-* 23:00:00
OnCalendar=Mon-Sun *-*-* 06:00:00