Strip file based on pattern

Hi,

I am stripping the below file based on a pattern:

**Starts**02-MAY-2017 03:48:13
**Ends**02-MAY-2017 03:48:13
+---------------------------------------------------------------------------+
Start of log messages 
+---------------------------------------------------------------------------+
Extract program started at          - 02-MAY-2017 03:48:32

!DATE:  05/02/2017  ***  PULLS DATA INFO ***
!START 03:48:32
!END:  03:48:32  JOB RECORDS   3943
!******    GOOD END OF JOB PROCESS  ***
Extract program completed at        - 02-MAY-2017 03:48:32

+---------------------------------------------------------------------------+
End of log messages 
+---------------------------------------------------------------------------+


+---------------------------------------------------------------------------+
No completion options were requested.

I can identify the lines using grep "^[^!]" test.txt and grep "^!" test.txt .

But not sure how to do sed or awk to strip the first character

I want a new file to be created as below:

DATE:  05/02/2017  ***  PULLS DATA INFO ***
START 03:48:32
END:  03:48:32  JOB RECORDS   3943
******    GOOD END OF JOB PROCESS  ***

Try

sed -n '/^!/ {s///;p}' file

Hi,
If your grep support '-P' connector for perl pcre:

grep -Po '^!\K.*' file

Regards.