小编Lui*_*res的帖子

使用任何有效的方法(PERL、SED、AWK)将文件行中的信息提取到列中

也许我对 perl/awk/sed 来说太老了,太年轻了不能停止编程。这是我需要解决的问题:

我在 TXT 文件中有这样的信息:

Name:
Name 1
Phone:
1111111
Email:
some@email1
DoentMatterInfo1:
whatever1
=
Name:
Name 2
Phone:
22222222
DoentMatterInfo2:
whatever2
Email:
some@email2
=
Name:
Name 3
DoentMatterInfo3:
whatever2
Email:
some@email3
=
Run Code Online (Sandbox Code Playgroud)

请注意,所需的信息在下一行,有一个记录分隔符 (=) 并且非常重要,有些记录没有所有信息,但可能包含我们不想要的信息。

因此,挑战是在输出中提取所需的信息(如果存在),例如:

Name 1 ; 111111 ; some@email1
Name 2 ; 222222 ; some@email2
Name 3 ; ; some@email3
Run Code Online (Sandbox Code Playgroud)

我尝试过的有点奏效,但剧照不是我想要的。

1. 使用 PERL

使用 Perl 我得到了重要的字段:

while (<>) {

    if ($_ =~ /Name/) {
        print "=\n". scalar <>;

    }    
    if ($_ =~ /Email/) { …
Run Code Online (Sandbox Code Playgroud)

perl awk sed

2
推荐指数
1
解决办法
165
查看次数

标签 统计

awk ×1

perl ×1

sed ×1