Lea las líneas del archivo en Bash y analice las palabras en variables para los parámetros de mailx

Tengo un script bash que lee líneas de un archivo de texto con 4 columnas (sin encabezados). El número de líneas puede ser un máximo de 4 líneas o menos. Las palabras en cada línea están separadas por el carácter ESPACIO.

[email protected]   [email protected];[email protected]   Sub1   MailBody1
[email protected]   [email protected];[email protected]   Sub2   MailBody2
[email protected]   [email protected];[email protected]   Sub3   MailBody3
[email protected]   [email protected];[email protected]   Sub4   MailBody4

Actualmente, estoy analizando el archivo y después de obtener cada línea, estoy almacenando cada palabra en cada línea en una variable y llamando a mailx cuatro veces. Preguntándome si existe una solución awk / sed elegante para la lógica mencionada a continuación.

encontrar el número total de líneasmientrasread $line, almacene cada línea en una variableparse cada línea comoi=( $line1 ), j=( $line2 ) etcget valores de cada línea como${i[0]}, ${i[1]}, ${i[2]} y${i[3]} etcllamadamailx -s ${i[2]} -t ${i[1]} -r ${i[0]} < ${i[3]}parse la siguiente línea y llame amailxhaga esto hasta que no se hayan alcanzado más líneas o se hayan alcanzado un máximo de 4 líneas

¿Awk o sed proporcionan una solución elegante a la lógica de iteración / bucle anterior?

Respuestas a la pregunta(2)

Su respuesta a la pregunta