insertar cadena para el valor faltante

insertar cadena para el valor faltante

Me encontré con algunos problemas al editar un archivo de texto que recibí debido a que faltaban algunos valores en una columna específica para algunas filas. Por ejemplo, así es como se ve el archivo (en su mayoría):

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

Como puede ver, a veces prbno se proporciona para todas las entradas. Descubrí que cuando una entrada no está presente, hay dos separaciones de pestañas. ¿Hay alguna manera de insertar una cadena entre las pestañas? Por ejemplo, algo como esto:

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

Respuesta1

Con awk, suponiendo que sus campos estén realmente separados por pestañas:

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

Este:

  1. Establece el separador de campos de entrada en una sola pestaña ( -F '\t')
  2. Establece el separador de campo de salida en una pestaña ( -v OFS='\t')
  3. Comprueba si el tercer campo está vacío ( $3 == "") y, de ser así, lo establece en la cadena"none"
  4. Y siempre imprime la línea ( 1).

información relacionada