Добавление дополнительной информации в строку

У меня есть файл GTF, как это:

ChrI Coding_transcript gene 8451772 8509212 . - . gene_id "UMM-S589-0.12-gene-1" ChrI Coding_transcript exon 8501974 8509212 . - . gene_id "UMM-S589-0.12-gene-1" ChrI Coding_transcript exon 8491643 8501928 . - 0 gene_id "UMM-S589-0.12-gene-1" 

Теперь я хочу добавить больше информации в колонку 9, чтобы она выглядела следующим образом:

 ChrI Coding_transcript exon 8501974 8509212 . - . gene_id "UMM-S589-0.12-gene-1"; transcript_id "UMM-S589-0.12-gene-1", exon_id "1"; ChrI Coding_transcript exon 8491643 8501928 . - 0 gene_id "UMM-S589-0.12-gene-1";transcript_id "UMM-S589-0.12-gene-1", exon_id "2"; 

Кто-нибудь знает любую простую команду, которую я могу использовать, чтобы сделать этот файл? Спасибо вам большое!

One Solution collect form web for “Добавление дополнительной информации в строку”

Попробуй это:

 awk 'NF==10{print $0";transcript_id "$10", exon_id ""\""++count[$3]"\""";"}NF!=10{print $0}' file.gtf 

Выход:

 ChrI Coding_transcript exon 8501974 8509212 . - . gene_id "UMM-S589-0.12-gene-1";transcript_id "UMM-S589-0.12-gene-1", exon_id "1"; ChrI Coding_transcript exon 8491643 8501928 . - 0 gene_id "UMM-S589-0.12-gene-1";transcript_id "UMM-S589-0.12-gene-1", exon_id "2"; 
  • NF==10 проверить, если количество полей 10.
    • print $0 напечатать полную строку.
    • transcript_id $10 так как он совпадает с gene_id
    • ++count[$3] распечатать вхождение exon (3-е поле)
  • NF!=10 просто напечатайте строку.
  • печатать строки, если разделенные запятыми поля совпадают в другой строке
  • Как извлечь номер из строки
  • Заменить строку перед определенной строкой
  • поиск шаблонов пар с использованием awk
  • Извлечь несколько вхождений в одну строку строки между двумя разделителями
  • Как выполнить две команды grep для одного файла?
  • подсчитать количество строк, предоставленных скрипту Python до и после задачи
  • Использование awk для сравнения файлов и объединения вывода из обоих файлов?
  • Как переместить строку из файла в другой файл на основе сопоставления с образцом?
  • sed заменяет соответствующую строку, которая не начинается с #
  • Разобрать вывод с динамической шириной столбца и пустыми полями
  • Linux и Unix - лучшая ОС в мире.