Remove lines before string1 and after string2

Hello All...

I have a text file (.ics) which I need to read into a variable but ONLY the part including and after 'BEGIN:VEVENT' and ending with END:VEVENT

Anything before BEGIN:VEVENT or after END:VEVENT should be ignored.

Thanks for input

Jeff

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 4.0.3//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:EDT
TZOFFSETTO:-0400
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:EST
TZOFFSETTO:-0500
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20101102T193354Z
UID:6BC16DAE-F98A-4122-B914-096146E2FBD8
DTEND;TZID=America/New_York:20101104T170000
TRANSP:OPAQUE
SUMMARY:another
DTSTART;TZID=America/New_York:20101104T160000
DTSTAMP:20101102T193358Z
SEQUENCE:2
END:VEVENT
END:VCALENDAR

Try:

awk '/BEGIN:VEVENT/,/END:VEVENT/' infile
1 Like

thanks for the quick reply... did exactly what I needed :slight_smile:

sed -n '/BEGIN:VEVENT/,/END:VEVENT/p' infile