You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

适配macOS:改造基于GNU grep的mutt邮件保存脚本

解决Mutt在Mac上自动保存邮件为指定格式文件名的问题

问题背景

需要通过Mutt快捷键将邮件保存为YYYY-MM-DD 主题.eml格式,但参考的脚本使用了GNU grep专属的-P选项,Mac自带的BSD grep不支持,替换为-e后出错。

两种可行解决方案

方案1:安装GNU grep(ggrep)

Mac上可以通过Homebrew安装GNU版本的grep,直接沿用原脚本的Perl正则:

  1. 安装ggrep:
    brew install grep
    
  2. 修改Mutt宏中的grep命令为ggrep,保持原正则逻辑不变即可。

方案2:适配BSD grep的正则表达式

BSD grep的扩展正则(使用-E选项,而非功能受限的-e)支持大部分常用语法,调整正则适配后即可正常运行。以下是完整的Mutt宏示例:

macro index,pager S "<save-message>~/Mail/Archive/`echo -n \"$(date -j -f \"%b %d %Y\" \"$(echo '%d' | grep -Eo '[A-Z][a-z]{2} [0-9]{1,2} [0-9]{4}' | head -n1)\" +%Y-%m-%d) $(echo '%s' | tr '/:*?"<>|' '_')`.eml<enter>" "Save message as YYYY-MM-DD Subject.eml"

关键调整说明:

  • 用-E替代-P,适配BSD grep的扩展正则语法
  • 日期提取正则[A-Z][a-z]{2} [0-9]{1,2} [0-9]{4}匹配邮件头中的日期片段(如Oct 15 2024),结合Mac的date -j命令转换为YYYY-MM-DD格式
  • 主题部分用tr '/:*?"<>|' '_'替换文件名非法字符,避免保存失败

使用说明

  1. 将上述宏添加到你的Mutt配置文件(通常是~/.muttrc或~/.config/mutt/muttrc)
  2. 在Mutt的邮件索引或查看界面,按下S键即可自动按指定格式保存邮件

内容的提问来源于stack exchange,提问作者iamthelabhras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:01:08