I would like to remove all of the empty lines from a file, but only when they are at the end/start of a file (that is, if there are no non-empty lines before them, at the start;
using awk:
awk '{a[NR]=$0;if($0 && !s)s=NR;} END{e=NR; for(i=NR;i>1;i--) if(a[i]){ e=i; break; } for(i=s;i<=e;i++) print a[i];}' yourFile