Estoy enfrentando un problema con los correos. Necesito recibir todos los mensajes entre 2 personas:
[email protected]
y [email protected]
.
El file
:
From: [email protected]
to: [email protected]
<body of the message1>
From: [email protected]
to: [email protected]
<body of the message1>
From: [email protected]
to: [email protected]
<body of the message1>
From: [email protected]
to: [email protected]
<body of the message1>
From: [email protected]
to: [email protected]
<body of the message1>
Traté de usar lo siguiente sed
:
sed -n "/From: [Ss]omebody1/,/From: /p" inputfile > test.txt
Como resultado, recibí todos los correos de alguien1 para test.txt
archivar.
La pregunta es: ¿Cuál debería ser la estructura sed
para obtener solo correos entre alguien1 y una persona?
p;
. Solo para evitar una lista de coincidencias aisladas queFrom: [email protected]
no sean seguidas por la coincidencia en segunda persona y el bloque de la carta.From: [email protected]
... Debe seleccionar una clave única diferente que no encontrará nuevamente en el cuerpo de su mensaje. Será lo mismo con laawk
respuesta. Pruébalo también.Con awk:
/From: [Ss]omebody1/{flag=1;next} \
Ponga una variable de bandera a 1 en el partido y omita la línea./to\: person1/
Si la bandera es 1, actualícela a 2, restablezca a 0./From/{flag=0}
En el partido, restablece el valor de la bandera.{if (flag==2){print NR, $0}}
Si la bandera es 2, imprimirá el número de lino y la línea.Cambie el valor de
person1
tener diferentes coincidencias.Archivo de entrada utilizado
fuente