Не похоже, что fetchmail
поддерживает TLS на сервере SMTP. Обычно это не является проблемой, так как обычно он доставляет электронную почту локально.
Вы можете обойти эту проблему, доставив письмо на локальный SMTP-сервер и попросив его обработать доставку. Если Вам не нужен или Вам не нужен сервер с полным обслуживанием, например, exim4
или postfix
, Вы можете использовать лёгкое реле, например, esmtp
или 'msmtp' для доставки почты.
При работе с несколькими файлами, grep
печатает каждое имя файла до совпадения. Так как вам не нужно искать регулярное выражение, вы можете использовать опцию -F
для поиска фиксированной строки (что немного ускорит процесс); опция -r
указывает grep
на рекурсивное действие. Опция -r
взята из версии GNU grep
, поэтому она не будет работать на системах с другими версиями grep.
grep -r -F 'Taxonomy' /path/to/directory
В результате вы получите такие строки как:
sequence.php?ID=gi|90022703|ref|YP_528530.1|:Taxonomy: Bacteria; Proteobacteria; Gammaproteobacteria; Alteromonadales; Alteromonadaceae; Saccharophagus
Есть несколько способов массировать это в нужный вам вывод; одним из них будет использование cut
:
grep -r -F 'Taxonomy' /path/to/directory | cut -d = -f 2 | cut -d : -f 1,3
Это должно превратить эту строку в:
gi|90022703|ref|YP_528530.1|: Bacteria; Proteobacteria; Gammaproteobacteria; Alteromonadales; Alteromonadaceae; Saccharophagus
Это не точное совпадение с тем, что вы описали; вы можете поместить | tr -d :
на конец трубки, если вы действительно хотите избавиться от двоеточия. Наконец, чтобы перенаправить вывод в файл:
grep -r -F 'Taxonomy' /path/to/directory | cut -d = -f 2 | cut -d : -f 1,3 > file.txt
Если вы хотите добавить вывод в файл, а не перезаписать его, используйте >>
вместо >
.
awk '/^Taxonomy:/{t=FILENAME; sub(/^.*\?ID=/, x, t); $1=t; print; close(FILENAME)}' /files/location/* > output.txt