Me gustaría fusionar una variable de un archivo a otro en Linux.
La primera variable contiene el nombre en el que quiero fusionar los archivos.
He ordenado ambos archivos usando -f y -k:sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted
y sort -f -k 1,1 1kg.tmp > 1kG.ref_file.sorted
Sin embargo, cuando uno ambos archivos con este comando:join -1 1 -2 1 SCZ.N.tmp.sorted 1kG.ref_file.sorted> SCZ.freq.joined
Sigo recibiendo el error 'join:SCZ.N.tmp.sorted:112855:no está ordenado:chr1_100002155_D D I6 0.995112 0.0184 0.7897 87016 Sin embargo, la unión continúa y la mayoría se fusiona. Sin embargo, no estoy seguro de si estoy perdiendo una pequeña proporción de casos debido a la falta de coincidencia entre los archivos o porque algo salió mal al ordenar estos archivos.
¿Alguien sabe lo que estoy haciendo mal? ¿Y qué puedo hacer para no recibir este error?
¡Gracias!
También probé:LANG=en_EN sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted2
y LANG=en_EN sort -f -k 1,1 1kg.tmp > 1kg.tmp.sorted2
, y luego unirse usando:LANG=en_EN join -1 1 -2 1 SCZ.N.tmp.sorted2 1kg.tmp.sorted2> SCZ.freq.joined
. Pero eso no lo resolvió.
Respuesta aceptada:
Está ordenando los archivos con la opción -f, como claves independientes de mayúsculas y minúsculas.
Sin embargo, join espera las claves en la secuencia ordenada normal.
Debe agregar la opción -i a la línea de comando para unirse, para que ignore las diferencias entre mayúsculas y minúsculas.
Alternativamente, omita la opción -f de ambos tipos.
Editar:también encontré otra posibilidad aquí. Los separadores de campo deben ser idénticos para ordenar y unir. Parece que los valores predeterminados para ordenar y unir son espacios en blanco, pero puede ser el próximo obstáculo.