0

我有一个巨大的文件,我需要过滤掉所有不包含电子邮件地址的行(逗号分隔文件)(由 @ 字符确定)。

现在我所拥有的是找到所有包含@符号的行:

.*,.*,.*@.*,.*$

基本上你有 4 个值,第三个值有电子邮件地址。

替换为:值将为空。

4

2 回答 2

4

在 TextMate 中,您有大约 10 种不同的方法来执行此操作,甚至可以通过命令行执行此操作。这里有一些更简单的方法......

来自 TextMate:

  1. Command-control-t,开始输入命令的某些部分“将不匹配的行复制到新文档中”,使用@(没有别的)作为模式。
  2. 与上面相同,除了您要查找的命令是“Distill Document / Selection”
  3. 查找并选择 @ 符号。然后执行与上述相同的操作,但搜索命令“带状线匹配选择/剪贴板”。你可能没有它,因为我可能自己开发了这个。

从命令行:

键入以下命令之一,将 FILE 替换为文件名,包括文件路径(如果它不在当前工作目录中)。过滤后的内容可以在 FILE-new 中找到。

  1. 使用 egrep: egrep -v '@' FILE > FILE-new
  2. 使用 sed: cat FILE | sed -e "/@/D" > FILE-new

对于以上两种情况,使用diff来查看您完成了什么:diff FILE{,-new}

应该可以吧,我猜...

于 2012-10-30T06:35:53.537 回答
1

尝试^[^@]*$用任何东西替换。或者,grep使用您的正则表达式的文件并将结果重定向到一个新文件中。

于 2012-10-21T23:04:43.093 回答