Quiero que se extraigan/grep algunos sitios web específicos antes de una cadena.
Ejemplo a continuación:
Supongamos que lo que está a continuación es un galimatías que solo quiero extraer el sitio web que está arriba ¡ SOLUTION NEEDED ! No los otros sitios web.
Solo quiero extraer sitios web que se pueden encontrar inmediatamente arriba SOLUTION NEEDED
[36m[•] URL: abvfrt.com|LOAD EXCEPTION: HTTPSConnectionPool(host='0.0.0.0', port=443): Read timed out. (read timeout=4) [36m[•] URL: abc dot com |LOAD: xyz=345 EXCEPTION: HTTPSConnectionPool(host='0.0.0.0', port=443): Read timed out. (read timeout=4) URL: Example dot com |: ABXCDRTTT 33m SOLUTION NEEDEDPuede usar grep -B n y -A n para mostrarle n número de líneas antes o después de la cadena coincidente.
En tu caso, algo como
grep -B 1 "SOLUTION NEEDED" /path/to/file
Sugeriendo probar esto:
grep -B1 "SOLUTION NEEDED" long.log | grep -oP "(?<=^URL: )[^|]*"grep -B1 "SOLUTION NEEDED" long.log Extraiga 1 línea antes de cada línea que coincida con "SOLUTION NEEDED"
grep -oP "(?<=^URL: )[^|]*"De líneas extraídas. Extrae el valor de la URL.