Как выборочно удалять столбцы и строки с помощью bash?

В настоящее время у меня есть набор данных, который выглядит так:

ВХОД

Hybridization REF TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-A4BB-01A-11D-A31Y-05 TCGA-FA-A4BB-01A-11D-A31Y-05 TCGA-FA-A4BB-01A-11D-A31Y-05 TCGA-FA-A4BB-01A-11D-A31Y-05 Composite Element REF Beta_value Gene_Symbol Chromosome Genomic_Coordinate Beta_value Gene_Symbol Chromosome Genomic_Coordinate cg00000029 0.856505141 RBL2 16 53468112 0.334665026 RBL2 16 53468112 cg00000108 NA C3orf35 3 37459206 NA C3orf35 3 37459206 cg00000109 NA FNDC3B 3 171916037 NA FNDC3B 3 171916037 

Набор данных намного больше и составляет почти 10 ГБ. Так слишком большой, чтобы делать в R, например.

Тем не менее, многие столбцы эффективно дублируются. Например, мне нужно сохранить только один из столбцов под названием (вторая строка) Gene_Symbol , Chromosome и Genomic_Coordinate . Отдельные столбцы Beta_value должны оставаться, потому что они различны для каждого образца. Идентификаторы образцов находятся в первой строке. Итак, пример желаемого вывода выше:

ЖЕЛАТЕЛЬНЫЙ ВЫХОД

 Hybridization REF Gene_Symbol Chromosome Genomic_Coordinate TCGA-FA-8693-01A-11D-2399-05 TCGA-FA-A4BB-01A-11D-A31Y-05 cg00000029 RBL2 16 53468112 0.856505141 0.334665026 cg00000108 C3orf35 3 37459206 NA NA cg00000109 FNDC3B 3 171916037 NA NA 

Обратите внимание, что я перепутал заголовки столбцов в первой строке, чтобы удалить избыточную информацию.

Каков наиболее эффективный способ сделать это с помощью bash?

  • Grep для фильтрации и отображения только начала строки
  • Замена одной тестовой строки на другую в определенном столбце
  • Выбор строк в файле, который не содержит значения в другом файле
  • Извлечь данные из двух файлов
  • Нужен сценарий Awk или Unix для транспонирования / поворота в следующем шаблоне
  • Можем ли мы найти количество страниц в файле Unix / Linux?
  • Команда «заполнить» столбцы в текстовом файле, a la the fill fill down
  • Создайте файл пар из пар
  • One Solution collect form web for “Как выборочно удалять столбцы и строки с помощью bash?”

    Предполагая, что ваши заголовки – это всего две строки в верхней части файла, я просто исправлю их вручную. (Простой способ: конец трубы tail -n +3 чтобы пропустить первые две строки, а затем объединить файл с вашими желаемыми заголовками.)

    Затем, остальное вы можете сделать с cut , который по умолчанию делится на символы [TAB], что очень удобно, потому что это то, что у вас уже есть. Просто подключитесь к

     cut -f1,3,6 

    или что угодно (в этом примере, выбрав первый, третий и шестой столбцы).

    Interesting Posts

    Программа 3D-рисования для создания человеческих фигур (например, Windows Poser)

    Как найти, какая команда выполняется символической связью?

    Хорошая практика использования svn для двух разных приложений, но на одном сервере?

    xinerama, 2 карты, 3 монитора

    grep трубопроводы в sed, заменяя inline; но я хочу, чтобы sed печатал имя файла и менял строку. Является ли это возможным?

    Всплывающее окно Python virtualenvwrapper и ZSH

    Каков самый короткий способ найти мой IP-адрес WAN в командной строке?

    Как вставить таблицу HTML в Libre Office Calc без потери структуры

    Как один поток может использовать 200% использования ЦП?

    Замена / dev / (u) случайным образом внутри контейнера

    Команды трубопровода на «тройники» предотвращают изменения переменных среды

    Помощь с apt-get на не подключенном к Интернету устройстве

    D-Link Wireless N 150 USB-адаптер на Ubuntu

    Разрешение пользователям без полномочий root на tty1 для Gnome X-server на Arch

    E763 с vim и проверкой орфографии

    Linux и Unix - лучшая ОС в мире.