Вы можете сделать небольшой shell-скрипт, который вычисляет md5sum нескольких файлов входящих сообщений и сравнивает его с сохраненным. Если хэши отличаются, значит, вы получили новое письмо, тогда новый вычисленный хэш заменит старый. Запустите это в задании cron и используйте notify-send из libnotify, чтобы предупредить вас.
#!/bin/bash
MAILBOXES=/your_mailbox_directory
while true
do
inotifywait -r -e modify $MAILBOXES && notify-send 'New mail' 'You just recieved a new mail' --icon=dialog-information
done
Делаем некоторые предположения о ваших данных:
$ cat file.xml
<root>
<node1>
<node2 ReqId="XXXXX" TxnTyp="4" Actn="1" BizDt="2019-03-27" TxnTm="2019-03-27T10:41:13" AdjTyp="3" SetSesID="EOD">
</node2>
</node1>
</root>
$ txn_tm=$( xmlstarlet sel -t -v '//node2/@TxnTm' file.xml )
$ echo "$txn_tm"
2019-03-27T10:41:13
Если вы хотите выбрать узел на основе ReqId, то нам нужно настроить xpath, :возвращающий значение атрибута «TxnTm» для любого узла с указанным атрибутом «ReqId».
xmlstarlet sel -t -v '//*[@ReqId = "XXXXX"]/@TxnTm' -n file.xml
Более простой вариант с использованием только grep
, хотя опять же с предупреждением о том, что использование инструментов регулярных выражений для разбора XML или XHTML — это -билет в один конец -в печаль -город:
$ grep -m1 -oE '"[0-9]{4}-[0-9]{2}-[0-9]{2}"' input
"2019-03-27"