insert string para o valor faltante

1

Encontrei alguns problemas com a edição de um arquivo de texto que recebi devido a alguns valores ausentes em uma coluna específica de algumas linhas. Por exemplo, aqui está o aspecto 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, o prb não é fornecido para cada entrada. Descobri que, quando uma entrada não está presente, há duas separações de guias. Existe uma maneira de inserir uma string entre as guias? Por exemplo, algo assim:

ID10    dad    prbM    ATGD
ID11    mom    prbF    CDSF
ID12    mom    none    CGDS
ID13    dad    prbF    FSDD
ID14    mom    none    FDSF
    
por cosmictypist 14.02.2016 / 23:46

1 resposta

2

Com awk , supondo que seus campos estejam realmente separados por guias:

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

Isto:

  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 guia ( -v OFS='\t' )
  3. Verifica se o terceiro campo está vazio ( $3 == "" ) e, em caso afirmativo, o define como a string "none"
  4. E sempre imprime a linha ( 1 ).
por 14.02.2016 / 23:55

Tags