awk 'BEGIN{OFS="\t"}
$3=="gene" {
  match($0, /gene_id "([^"]+)"/, id);
  match($0, /gene_name "([^"]+)"/, name);
  match($0, /gene_type "([^"]+)"/, type);

  if ($7 == "+")
    print $1, $4-1, $4, id[1], name[1], type[1], $7;
  else if ($7 == "-")
    print $1, $5-1, $5, id[1], name[1], type[1], $7;
}' gencode.vM39.annotation.gtf > gencode_mm39_gene_TSS_allTypes.bed
