Título: Dudas en modificación de columnas AWK Publicado por: Lucas Lodeiro en 23 Marzo 2018, 18:53 pm Hola! Tengo un archivo capa2da.dat de varias filas (muchas) del tipo:
H 2.123456789 3.12456789 4.123456789 0 0 0 Necesito incluir en un script un comando que me altere la 4° columna restando una variable definida ya previamente en el shell, y las otras queden sin alterarse. Primero probe en modificar la 4° columna solamente con; awk -v CTECRYSTAL="${CTECRYSTAL}" '{printf "%12.9f\n",$4-CTECRYSTAL}' capa2da.dat > capa2daZ.dat Logre asi que hiciera la resta correctamente, pero solo obtengo la 4° columna, intente añadiendo las demas columnas sin alterar, asi: awk -v CTECRYSTAL="${CTECRYSTAL}" '{printf "%12.9f\n",$1,$2,$3,$4-CTECRYSTAL,$5,$6,$7}' capa2da.dat > capa2daZ.dat Pero me da error porque la primera columna no tiene la cantidad de caracteres suficientes, pero requiero que la columna 2 3 y 4 tengan dicha cantidad de caracteres. Tambien probe con: awk -v CTECRYSTAL="${CTECRYSTAL}" '{print "\n",$1,$2,$3}{printf "%12.9f\n",$4-CTECRYSTAL}{print "\n",$5,$6,$7}' capa2da.dat > capa2daZ.dat Con esto imprime todo lo que requiero, pero no respeta las filas... cada fila del input se transforma en 3 filas: H 2.123456789 3.12456789 4.123456789 (alterada por la resta) 0 0 0 ¿Alguien sabe como puedo arreglar eso en AWK, o con otros comandos de bash? Saludos y gracias |