Your statement describing what output you want is ambiguous. The only line between the first occurrence of 05/22/18 and 05/23/18 is the single line:
05/22/18 22:05:00 ABRT US1EXNITE Status 1
Is that what you want?
Saying that you tried something "but it does not work" does not give us much help in trying to guess what did not work. Did it produce diagnostic messages? Did it give no output? Did it give the wrong output?
What shell and operating system are you using? The command:
grep -e "05/22/18" -e "05/23/18"
should not complain about an invalid -e option. It should just wait for you to type in data to be processed and print out any lines that contain either of those strings (but, of course, that does not meet any requirements about finding lines between anything).
Since the user's $first and $last both expand to strings containing slash ( / ) characters, double quotes won't work in this case either unless the slashes in the variables are escaped:
first='05\/22\/18'
last='05\/23\/18'
before invoking sed . And, if that is done, that sed command will print lines from the 1st one matching $first through the 1st one matching $last ; it won't print the lines between the patterns, it will also print the first line match each of those patterns.