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