insira string para valor ausente

insira string para valor ausente

Tive alguns problemas ao editar um arquivo de texto que recebi devido a alguns valores ausentes em uma coluna específica para algumas linhas. Por exemplo, aqui está a aparência do arquivo (principalmente):

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

Como você pode ver, às vezes prbnão é fornecido para todas as entradas. Descobri que quando uma entrada não está presente, há duas separações de guias. Existe uma maneira de inserir uma string entre as abas? Por exemplo, algo assim:

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

Responder1

Com awk, supondo que seus campos estejam realmente separados por tabulações:

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

Esse:

  1. Define o separador do campo de entrada para uma única guia ( -F '\t')
  2. Define o separador do campo de saída como uma tabulação ( -v OFS='\t')
  3. Verifica se o terceiro campo está vazio ( $3 == "") e, em caso afirmativo, define-o como a string"none"
  4. E sempre imprime a linha ( 1).

informação relacionada