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 amailx
haga 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?