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

如何在BBEdit/InDesign中通过grep删除不含@字符的行?

保留含邮箱(@)的行,删除其他行的解决办法

我来帮你搞定这个需求!不管是用BBEdit/InDesign的Grep查找替换,还是终端命令行,都能轻松实现只保留带@的行,咱们分情况说:

一、BBEdit 或 InDesign 的 Grep 替换方法

这两个软件的Grep替换逻辑一致,核心是精准匹配整行不含@的内容,然后替换为空,步骤如下:

  1. 打开你的文本文件,调出查找替换对话框(BBEdit是Cmd+F,InDesign是Cmd+F后切换到「Grep」标签)
  2. 在「查找模式」里输入这个正则表达式:
    ^[^@]*$
    
    给你拆解下这个正则的意思:
    • ^:匹配一行的开头
    • [^@]*:匹配0个或多个**不是@**的字符([^...]是反向匹配规则)
    • $:匹配一行的结尾
      组合起来就是精准命中整行都没有@符号的行,刚好对应你要删除的内容。
  3. 「替换模式」留空(什么都不填)
  4. 勾选对话框里的「Grep」选项,点击「全部替换」

替换完成后,文件里就只剩下带@的行啦!

小提示:BBEdit还有更快捷的方式——直接用「文本」菜单 →「筛选」→「保留包含以下内容的行」,输入@回车就行,比Grep替换更省心~

二、终端命令行方法

如果你愿意用终端操作,那更简单,两种常用命令任你选:

方法1:用 grep

直接筛选出含@的行并保存到新文件:

grep "@" 你的文件名.txt > 筛选后文件.txt

方法2:用 sed

删除所有不含@的行,输出到新文件:

sed '/@/!d' 你的文件名.txt > 筛选后文件.txt

解释下:/@/匹配包含@的行,!d表示「不匹配的行就删除」,最终留下的就是你要的内容。

这两种方法都不需要验证邮箱的有效性,完全符合你的需求,选你顺手的来就行!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:03:52