вставьте строку для отсутствующего значения

вставьте строку для отсутствующего значения

У меня возникли проблемы с редактированием текстового файла, который я получил из-за некоторых отсутствующих значений в определенном столбце для некоторых строк. Например, вот как выглядит файл (в основном):

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom        CGDS
ID13    dad    prbF    FSDD
ID14    mom        FDSF

Как вы видите, иногда prbне предоставляется для каждой записи. Я обнаружил, что когда запись отсутствует, есть два разделителя табуляции. Есть ли способ вставить строку между вкладками? Например, что-то вроде этого:

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom    none    CGDS
ID13    dad    prbF    FSDD
ID14    mom    none    FDSF

решение1

С awk, предполагая, что ваши поля фактически разделены табуляциями:

awk -F '\t' -v OFS='\t' '$3 == ""{$3 = "none"};1' input.txt

Этот:

  1. Устанавливает разделитель полей ввода на один символ табуляции ( -F '\t')
  2. Устанавливает разделитель выходных полей на табуляцию ( -v OFS='\t')
  3. Проверяет, является ли третье поле пустым ( $3 == ""), и если да, устанавливает его в строку"none"
  4. И всегда печатает строку ( 1).

Связанный контент