Se você tem o GNU awk, você pode usar gensub
para fazer a substituição usando um regex adequado, por ex. assumindo que tudo a partir de gene_id
é um único campo delimitado por tabulação 9:
gawk -F '\t' '{$9 = gensub(/.*gene_name "([^"]*)".*/,"\1","1",$9); print $1,$4,$5,$7,$9}' input
chr1 11869 12227 + DDX11L1
chr1 12010 12057 + DDX11L1