使用awk解析文本文件

因杜贾

我有一个不断变化的文本文件,其中包含来自Gmail API的邮件。我需要解析它的内容。我的文本文件包含消息的ID,消息,发件人详细信息和日期:

15335b114b093448(消息ID)::名称:SINDHUJA,
需要的服务:管道,城市:班加罗尔,电子邮件ID:[email protected],手机:9987654434 ::星期三,2016年3月2日04:58:29 +0000 :: Flipkart(合作伙伴)[email protected] ::: 
15335254a7e5677a ::名称:HALEN, 需要的服务:电工,城市:CHENNAI,电子邮件ID:[email protected],手机:934554434 :: :: Wed,2016年3月2日07:36 :37 +0530(IST)::印度时报[email protected] ::::

我该如何解析?我尝试了代码:

 >>>rawProfiles='''
    15335b114b093448::NAME : SINDHUJA, 
SERVICE REQUIRED: PLUMBER ,CITY :BANGALORE, EMAIL ID : [email protected] ,MOBILE : 9987654434::  Wed, 02 Mar 2016 04:58:29 +0000::Flipkart <[email protected]>:::
    15335254a7e5677a::NAME : HALEN, 
SERVICE REQUIRED: ELECTRICIAN ,CITY :CHENNAI, EMAIL ID : [email protected] ,MOBILE : 934554434:: ::Wed, 2 Mar 2016 07:36:37 +0530 (IST)::The Times of India <[email protected]>::::
    '''
    >>>profilesList=re.split(r'\n{1,}',rawProfiles)

    >>>profilesList =[re.sub(r'\n',' ',profile) for profile in profilesList]

    >>>profilesList =[re.split(r',',profile,maxsplit=2) for profile in profilesList]
    >>>for profile in profilesList:
    print profile

    >>>profilesList =[map(str.strip,profile) for profile in profilesList]
    >>>for profile in profilesList:
    print profile

这给了我一个:nameError re not defined

编辑

该代码在python中。

我的示例输出应为:

 合作伙伴       名称服务     城市移动电子邮件  
Flipkart SINDHUJA PLUMBER班加罗尔9987654434 [email protected]
Times哈伦电工CHENNAI 9345544342 [email protected]

萤火虫

第二行的“合作伙伴”列存在一个小问题,但是awk可以作为您的开始。

BEGIN {
    FS="::";
    OFS="\t";
    print "PARTNER\tNAME\tSERVICE\tCITY\tMOBILE\tEMAIL"
}
{
    split($2,A,"[:,]");
    if ($3 == " ")
    {
        split($5,B,"[:,]");
    }
    else
    {
        split($4,B,"[:,]");
    }

    split(B[1],C,"mail");
    name=A[2];
    service=A[4];
    city=A[6];
    mobile=A[10];
    email=A[8];
    partner=C[1];
    sub("[(]partner[)]", "",partner);

    print partner"\t"name"\t"service"\t"city"\t"mobile"\t"email;
}

出去:

PARTNER NAME    SERVICE CITY    MOBILE  EMAIL
Flipkart     SINDHUJA    PLUMBER    BANGALORE    9987654434  [email protected] 
The Times of India   HALEN   ELECTRICIAN    CHENNAI  934554434   [email protected] 

您必须从(bash,zsh ..)shell运行它,并将其另存为what.awk

awk -f whatever.awk file

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用awk解析文本文件

来自分类Dev

使用awk解析文本文件的各个部分

来自分类Dev

使用Python解析文本文件

来自分类Dev

awk:使用布局关键字解析文本文件

来自分类Dev

解析文本文件

来自分类Dev

使用Python解析文本文件中的文本块

来自分类Dev

使用sed或awk从文本文件生成CSV

来自分类Dev

使用Bash和AWK比较文本文件

来自分类Dev

从外壳使用Awk脚本搜索文本文件

来自分类Dev

使用awk / sed编辑文本文件

来自分类Dev

使用awk命令格式化文本文件

来自分类Dev

使用Julia逐行解析包含数据的文本文件?

来自分类Dev

使用HashMap和List解析文本文件

来自分类Dev

使用Unix命令解析复杂的文本文件

来自分类Dev

使用C ++解析文本文件(包含HTML)

来自分类Dev

使用Julia逐行解析包含数据的文本文件?

来自分类Dev

如何使用RegexParser正确解析文本文件?

来自分类Dev

使用 GAWK 解析 ASCII 文本文件

来自分类Dev

AWK:用户输入文本文件

来自分类Dev

在Julia中解析文本文件

来自分类Dev

解析缩进的文本文件

来自分类Dev

Shell / Bash解析文本文件

来自分类Dev

用Java解析文本文件

来自分类Dev

从文本文件解析和拆分

来自分类Dev

解析文本文件并删除空白

来自分类Dev

用Java解析文本文件

来自分类Dev

异常解析文本文件

来自分类Dev

解析和搜索文本文件

来自分类Dev

在PowerShell中解析文本文件