Вот один из способов (с использованием инструментов GNU):
grep -Po '^\s*\K/.*' file |
sed 's/\s*\\//' |
while IFS= read -r path; do
[[ -e "$path" ]] &&
printf 'FOUND: "%s"\n' "$path" ||
printf "ERROR: '%s' doesn't exist\n" "$path";
done
grep -Po '^\s*\K/.*'
:найти только те строки, которые начинаются с 0 или более пробельных символов, а затем /
. Это напечатает строки с целевыми путями. sed 's/\s*\\//'
:удалите все пробелы в конце и обратную косую черту. while IFS= read -r path; do
:прочитать каждую строку (путь )в переменную $path
. [[ -e "$path" ]] && printf 'FOUND: "%s"\n' "$path"
:если этот путь существует, вывести соответствующее сообщение. || printf "ERROR: '%s' doesn't exist\n" "$path";
:иначе, если он не существует, вывести сообщение об ошибке. Это возможно, но это сложно .
Начнем с «двух писем». Есть два электронных письма. Каково временное расстояние, в течение которого два электронных письма больше не могут быть объединены вместе? Вам нужно хранить первое электронное письмо как минимум в течение этого времени. И, если в течение этого времени приходит другая почта, вы выполняете слияние; в противном случае вы освобождаете первую почту, которая придет с задержкой.
Итак, вам нужно перехватывать все электронные письма по мере их поступления , проверять, адресованы ли они одному отправителю и присутствует ли этот отправитель в списке «объединителей».
Если эти условия выполнены, электронное письмо удаляется из очереди отправки или, если возможно, вообще не ставится в очередь, а сохраняется локально (в mbox, например, закодировано для отправителя. Это может быть каталог с отправителем MD5 в качестве имени ).
Затем необходимо периодически проверять все такие mbox'ы. Вы должны сделать это через скрипт cron, другого практичного и надежного способа нет. Мбоксы старше определенного времени должны быть преобразованы обратно в электронные письма и отправлены без дальнейших задержек.
Если при сохранении сообщения электронной почты соответствующий mbox уже присутствует, вы извлекаете вложения из входящего сообщения электронной почты и добавляете его в существующий mbox.