¿Cómo puedo agregar nuevas líneas en un archivo CSV y modificarlas en Unix?
Soy nuevo en Unix en general y estoy empezando a aprender scripting de shell. Estoy trabajando con un archivo CSV con las siguientes filas de muestra (es un archivo CSV grande con 4 entradas para cada ítem):
Tabla 1
Item ID Tiempo Disponible Ubicación
0001 02/02/2021 08:00 Y NJ
0001 02/02/2021 09:00 N UT
0001 02/02/2021 10:00 Y AZ
0001 02/02/2021 11:00 Y CA
0002 02/02/2021 08:00 Y NJ
0002 02/02/2021 09:00 N UT
0002 02/02/2021 10:00 Y AZ
0002 02/02/2021 11:00 Y CA
Tengo otro CSV con un montón de IDs de ítems de la siguiente manera:
Tabla 2
Item ID Nombre_Item ID_Aux_Item Nombre_Aux_Item
1001 IT_1 3323 IT_Aux_1
1002 IT_2 3325 IT_Aux_2
1003 IT_3 3328 IT_Aux_3
1010 IT_4 3333 IT_Aux_4
Me gustaría crear nuevas entradas en el primer archivo CSV (una entrada para cada ítem en el segundo archivo CSV). Cada nueva entrada debe ser igual a la primera fila de la Tabla 1 con el ID del ítem reemplazado apropiadamente. El resultado esperado sería:
Tabla 1
Item ID Tiempo Disponible Ubicación
0001 02/02/2021 08:00 Y NJ
0001 02/02/2021 09:00 N UT
0001 02/02/2021 10:00 Y AZ
0001 02/02/2021 11:00 Y CA
0002 02/02/2021 08:00 Y NJ
0002 02/02/2021 09:00 N UT
0002 02/02/2021 10:00 Y AZ
0002 02/02/2021 11:00 Y CA
1001 02/02/2021 08:00 Y NJ
1002 02/02/2021 08:00 Y NJ
1003 02/02/2021 08:00 Y NJ
1010 02/02/2021 08:00 Y NJ
¿Cómo puedo escribir un script para lograr esto en Unix? Gracias de antemano.
davy.ai
Para lograr esto en Unix, puedes utilizar una combinación de comandos de shell y scripting. Aquí hay un enfoque posible:
read
y la redirección de entrada (<
) para leer desde los archivos. Por ejemplo:Para cada fila en la Tabla 2, verifica si tiene una fila correspondiente en la Tabla 1 buscando el ID del elemento. Si la tiene, recorre las primeras cuatro filas de la Tabla 1 utilizando un bucle
for
y reemplaza el ID del elemento con el nuevo ID de la Tabla 2. Luego, imprime la fila modificada. Por ejemplo:>
). Por ejemplo:Esto debería generar un nuevo archivo CSV con la Tabla 1 modificada, incluyendo las entradas adicionales de la Tabla 2.