If you are in ksh then you can slice the strings with the following:-
#!/bin/ksh
MYSTRING="a b c d e" # Quoting to set the variable only. Quotes do not form part of string
TEMPVAR="${MYSTRING#*\"}" # Cut off everything before first quote - no effect
OUTPUT="${TEMPVAR%\"*}" # Cut off everything after last quote - no effect
echo $OUTPUT
MYSTRING="a b \"c\" d e" # Escaped quotes do form part of string
TEMPVAR="${MYSTRING#*\"}" # Cut off everything before first quote
OUTPUT="${TEMPVAR%\"*}" # Cut off everything after last quote
echo $OUTPUT
The last criteria is a bit awkward though. The output you suggest ignores the fact that your string may have embedded quotes in it. Do you not want to know these exist?
If not, then append | tr -d "\"" to the echo $OUTPUT statement.
The thing is, I find both sed & awk a bit heavy to fire up on the CPU if this is a repetitive processes. Of course, if the logic can be changed so that sed or awk can process a single large file, then that should be better.