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