¿Bash script para extraer entradas del archivo de registro según las fechas especificadas en otro archivo?

Tengo un archivo de registro CSV delimitado por comas bastante grande (> 50000 filas, llamémoslo file1.csv) que se parece a esto:

field1,field2,MM-DD-YY HH:MM:SS,field4,field5...
...
field1,field2,07-29-10 08:04:22.7,field4,field5...
field1,field2,07-29-10 08:04:24.7,field4,field5...
field1,field2,07-29-10 08:04:26.7,field4,field5...
field1,field2,07-29-10 08:04:28.7,field4,field5...
field1,field2,07-29-10 08:04:30.7,field4,field5...
...

Como puede ver, hay un campo en el medio que es una marca de tiempo.

También tengo un archivo (llamémoslo file2.csv) que tiene una breve lista de veces:

timestamp,YYYY,MM,DD,HH,MM,SS
20100729180031,2010,07,29,18,00,31
20100729180039,2010,07,29,18,00,39
20100729180048,2010,07,29,18,00,48
20100729180056,2010,07,29,18,00,56
20100729180106,2010,07,29,18,01,06
20100729180115,2010,07,29,18,01,15

Lo que me gustaría hacer es extraer solo las líneas en file1.csv que tienen tiempos especificados en file2.csv.

¿Cómo hago esto con un script bash? Como file1.csv es bastante grande, la eficiencia también sería una preocupación. He hecho scripts de bash muy simples antes, pero realmente no sé cómo lidiar con esto. Quizás alguna implementación de awk? ¿O hay otra manera?

PD Complicación 1: compruebo manualmente algunas de las entradas en ambos archivos para asegurarme de que coincidan, y lo hacen. Solo tiene que haber una manera de eliminar (o ignorar) el campo ".7" adicional al final de los segundos ("SS") en file1.csv.

P.P.S. Complicación 2: Resulta que las entradas en list1.csv están separadas por unos dos segundos. ¡A veces las marcas de tiempo en list2.csv se encuentran justo entre dos de las entradas en list1.csv! ¿Hay alguna manera de encontrar la coincidencia más cercana en este caso?

Respuestas a la pregunta(3)

Su respuesta a la pregunta