awk:如果缺少则添加一行

时间:2013-04-08 14:17:10

标签: scripting awk

我有一个处理.ICS日历文件的awk脚本。 如果它缺失,我需要添加ATTENDEE线。

我已经有一个脚本解析所有事件,只考虑我需要的CHECKPARM标准。如果它已经不存在,我需要添加ATTENDEE。

/BEGIN:VEVENT/ { cache = 1; }

/CHECKPARM/ {
    if( index( $0, var ) )
        printf( "%s", cached_lines );
    else
        drop = 1;
    cached_lines = "";
    cache = 0;
}

# this doesn't work
#!~ /ATTENDEE/ {
#    printf ("ATTENDEE: %s", organizer);
#}

cache  {
    cached_lines = cached_lines $0 "\n";
    next;
};

!drop { print; }

/END:VEVENT/ { drop = 0; }

1 个答案:

答案 0 :(得分:1)

尝试使用标记,如果存在行,则设置它,如果不存在,则添加行。 像这样:

/ATTENDEE/ {att = 1}

!att {
    printf ("ATTENDEE: %s\n", organizer)
}