Pull to refresh

GMail — проверка новых писем из командной строки

Reading time 1 min
Views 5.9K
Не будем тянуть кота за хвост. Сразу к делу

curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | wc -l

Результатом будет количество новых писем у вас в ящике.



Update: команду можно упростить до
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | awk -F '<fullcount>|</fullcount>' '{for (i=2; i<=NF; i++) {print $i}}'
Спасибо за подсказку Wolverine

Update: и даже еще проще
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | grep -c "<entry>"
намекает onix74

Использованые команды должны быть вполне знакомы искушенному пользователю linux. Для неискушенных краткое пояснение того, что делают части этой строки.
curl — тут получает страницу по заданному адресу. В данном случае это RSS feed
tr -d '\n' — удаляет переносы строк
awk — «выкусывает» нужные части (язык awk вообще спец в разного рода парсинге строк. Такая себе замена регулярок)
wc -l — подсчет количества строк

А если команду немного усложнить и распарсить вывод, то можно получить и больше информации: отправителя и тему письма.

curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | perl -pe 's/^<title>(.*)<\/title>.*<name>(.*)<\/name>.*$/$2 - $1/'


По материалам commandlinefu
Tags:
Hubs:
+103
Comments 95
Comments Comments 95

Articles