parsing the output of ls is unreliable, but this should work in this particular case:
sed -e 's/^.*emma emma //' file
That deletes everything up to "emma emma " on each line. if that string doesn't appear on a line, it is unchanged.
I've written the regexp to only remove the first space after emma, so that the size field remains right-aligned (e.g. ' 709K' and '1007K' both take the same amount of chars on the line)
if you don't wan't that, use this instead:
sed -e 's/^.*emma emma *//' file
that will delete all whitespace after emma until the start of the next field.
Here's a sed version that works with any user group:
sed -e 's/^.\{10\} [0-9]\+ [^ ]\+ [^ ]\+ //' file
it relies even more heavily on the exact format of your ls output, so it is technically even worse than the first version....but it should work for your particular file.
see Why *not* parse `ls` (and what to do instead)?Why *not* parse `ls` (and what to do instead)? for info on why parsing ls is bad.
If not all files are owned by emma, you might want to use an awk script like this instead.
awk 'NF>2 {print $5,$6,$7,$8,$9} ; NF<3 {print}' file
For lines with more than 2 fields, it prints only fields 5-9. for lines with <3 fields, it prints the entire line.
unfortunately, this loses the right-alignment of the size field....that can be fixed with a slightly more complicated awk script:
awk 'NF>2 {printf "%5s %s %s %s %s\n", $5, $6, $7, $8, $9} ; NF<3 {print}' file
This final version merges the for loop from jasonwryan's answer, so copes with filenames that have any number of single spaces in them (but not consecutive spaces, as mentioned by G-Man):
awk 'NF>2 {printf "%5s", $5; for(i=6;i<=NF;i++){printf " %s", $i}; printf "\n"} ; NF<3 {print}' file