【问题标题】:Remove sections from a text file not containing certain strings从不包含某些字符串的文本文件中删除部分
【发布时间】:2021-06-24 19:31:56
【问题描述】:

所以我有一个文本文档,其中包含与电子邮件相关的信息。我还有另一封邮件列表。

现在我想基本上检查一封电子邮件是否与文档一的字段中的一个匹配(由“====”分隔),如果它确实包含来自文档二的电子邮件,则输出/保存该特定的字段(带有数据)。

例如,

文档 A:

===================
JohnDoe@gmail.com
Tall man
Black hair
Blue eyes
===================
====================
jackandjones@gmail.com
Small man
Black hair
green eyes
=====================
=====================
janedoe@gmail.com
Tall women
Ginger hair
Blue eyes
=====================

文档二:

Johndoe@gmail.com
bobdylan@gmail.com
Janedoe@gmail.com

期望的输出:

===================
JohnDoe@gmail.com
Tall man
Black hair
Blue eyes
===================
=====================
janedoe@gmail.com
Tall women
Ginger hair
Blue eyes
=====================

抱歉,如果我没有很好地解释这一点,我想到的是使用 cut 命令,但我无法得到我想要的输出,有人可以轻推一下吗?

【问题讨论】:

    标签: linux text replace formatting cut


    【解决方案1】:

    假设 GNU awk 支持多字符的 RSRT

    gawk '
    FNR==NR { f1[tolower($1)];next}
    !(FNR%2) && tolower($2) in f1 { print RT $0 RT }
    ' DocumentTwo RS='[=]+' FS='\n' DocumentA
    

    产量:

    ===================
    JohnDoe@gmail.com
    Tall man
    Black hair
    Blue eyes
    ===================
    =====================
    janedoe@gmail.com
    Tall women
    Ginger hair
    Blue eyes
    =====================
    

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多