如果第一个文件的行与Linux中第二个文件中存在的字符串匹配,如何删除该行?

乔尼·沃克(Joney Walker)

考虑我有两个文本文件。

第一个文件名-“ Emails.txt”,其中包含以下数据:

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

第二个文本文件-“ Banned.txt”,带有以下字符串:

@gotmail.com
@cmail.com
@uor.edu

如果第一个文本文件“ Emails.txt”中的所有行与第二个文本文件“ Banned.txt”中存在的任何行的字符串匹配,该如何删除?

新文件的期望输出应为:

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

可以在Linux中使用SED或awk完成此操作吗?你能建议如何做到这一点吗?

乔斯

grep -v足够的。该标志-f使您可以完全按照自己的意愿进行操作:

grep -vf Banned.txt Emails.txt

如果您想从被禁止的地址列表中做一些更复杂的事情,例如强加它们与整个域匹配,则需要从Banned文件中生成一个正则表达式

cat Banned.txt | tr "\n" "|" | sed -e 's,|,$\\|,g' | sed -e 's,\\|$,,'

给出期望的

@gotmail.com$\|@cmail.com$\|@uor.edu$

然后:

cat Banned.txt | tr "\n" "|" | sed -e 's,|,$\\\\|,g' | sed -e 's,\\|$,,' | xargs -i grep -v '{}' Emails.txt

\通过进行评估时,转义次数增加了一倍xargs)。这将匹配并删除,[email protected]但不会匹配[email protected]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果它们恰好匹配第二个文件中的字符串,如何从一个文件中删除字符串?

提取文本文件中第一个和第二个重复字符串之间的特定行

保留第一个文件中与第二个文件不匹配的行

Bash - 用第二个数组中的字符串替换第一个数组中的文件字符串

如何将两个字符串之间的行复制到一个新的文本文件中,该文件完全匹配第一个字符串,部分匹配第二个字符串

比较两个文本文件,如果第二个文件的行包含第一个文件的两列,则删除该行

AWK比较两个文件,如果匹配,则将第二个文件中的新列添加到第一个文件中

从第二个字符串中删除出现在第一个字符串中的字符

如果第二个字符串中存在第一个字符串中的字母,则无法比较2个字符串-Java

从第二个“ \ n”和其余的字符串中删除返回的字符串(不要删除第一个)

根据第二个文件中的模式匹配映射第一个文件的字段

如何基于第二个Excel文件熊猫的数据删除第一个Excel中的Excel行

如何基于第二个文件中的信息将信息分组在第一个文件中?

在Ruby中,如果数组字符串等于第二个数组字符串中的任何一个,那么如何从文件或数组中删除?

如何从PyQt5中的第二个文件访问第一个文件方法?

如何在多种条件下从字符串中获取第一个和第二个字符

在检查第二个逗号分隔的字符串后得到的字符串不在第一个逗号分隔的字符串中

在两个csv文件中匹配一个字符串,但是第二个文件太大,无法读入列表

如何解决在第一个分支中已删除并在第二个分支中已重命名的文件上的合并冲突?

如何使用AWK循环浏览第一个文件并在第一个文件中的每一行旁边打印第二个文件中的所有行?

我试图在一行中搜索两个字符串,但命令无法识别第二个匹配项,并且仅显示第一个匹配项

如果第一个不返回任何内容,则运行第二个查询;如果第一个返回行,然后返回该行

如何Git提交第二个空文件而不删除第一个非空文件?

从第二个数组中存在的第一个数组中删除值

如何对任何两个匹配的数字或第一个数字比第二个数字小的字符串进行grep?

如果存在第二个名称,则使用正则表达式在字符串中查找名称,但不包括第一个名称

比较两个文件的第一列和第二列,如果匹配则打印第二个文件中的行

搜索文件中具有匹配模式的行,但将同一行中与第二个模式匹配的字符串替换

在shell脚本中查找并将一个文件中包含的行字符串替换为第二个文件