Here is the text that I was to run sed on. In this text I want to insert a semi colon ';' before 'select a13.STORE_TYPE STORE_TYPE,' and after 'from ZZMR00 pa11'
Input text:
insert into ZZMQ01
select pa11.STATE_NBR STATE_NBR,
pa11.STORE_TYPE STORE_TYPE,
pa11.WEEK_ID WEEK_ID
from ZZMR00 pa11
select a13.STORE_TYPE STORE_TYPE,
max(a16.TYPE_DESC) TYPE_DESC,
a14.WEEK_ID WEEK_ID,
max(a17.WEEK_DESC) WEEK_DESC,
sum(a11.CLE_SLS_QTY) WJXBFS1
from STORE_DIVISION a11
join LOOKUP_STORE a12
on (a11.STORE_NBR = a12.STORE_NBR)
join RELATE_STORE_TYPE a13
on (a11.STORE_NBR = a13.STORE_NBR)
join LOOKUP_DAY a14
on (a11.CUR_TRN_DT = a14.CUR_TRN_DT)
join ZZMQ01 pa15
on (a12.STATE_NBR = pa15.STATE_NBR and
a13.STORE_TYPE = pa15.STORE_TYPE and
a14.WEEK_ID = pa15.WEEK_ID)
join LOOKUP_TYPE a16
on (a13.STORE_TYPE = a16.STORE_TYPE)
join LOOKUP_WEEK a17
on (a14.WEEK_ID = a17.WEEK_ID)
where (a13.STORE_TYPE in (1, 2)
and a14.MONTH_ID = 199411)
group by a13.STORE_TYPE,
a14.WEEK_ID
I want the sed to be generic like insert a semicolon if a 'select' is preceded by newlines.
The output will be
insert into ZZMQ01
select pa11.STATE_NBR STATE_NBR,
pa11.STORE_TYPE STORE_TYPE,
pa11.WEEK_ID WEEK_ID
from ZZMR00 pa11
; # Notice the semi colon that I want to insert here. This doesn't exist in the input text.
select a13.STORE_TYPE STORE_TYPE,
max(a16.TYPE_DESC) TYPE_DESC,
a14.WEEK_ID WEEK_ID,
max(a17.WEEK_DESC) WEEK_DESC,
sum(a11.CLE_SLS_QTY) WJXBFS1
from STORE_DIVISION a11
join LOOKUP_STORE a12
on (a11.STORE_NBR = a12.STORE_NBR)
join RELATE_STORE_TYPE a13
on (a11.STORE_NBR = a13.STORE_NBR)
join LOOKUP_DAY a14
on (a11.CUR_TRN_DT = a14.CUR_TRN_DT)
join ZZMQ01 pa15
on (a12.STATE_NBR = pa15.STATE_NBR and
a13.STORE_TYPE = pa15.STORE_TYPE and
a14.WEEK_ID = pa15.WEEK_ID)
join LOOKUP_TYPE a16
on (a13.STORE_TYPE = a16.STORE_TYPE)
join LOOKUP_WEEK a17
on (a14.WEEK_ID = a17.WEEK_ID)
where (a13.STORE_TYPE in (1, 2)
and a14.MONTH_ID = 199411)
group by a13.STORE_TYPE,
a14.WEEK_ID