Estoy buscando encontrar y reemplazar dentro de un volcado de base de datos gigante, y no está haciendo lo que creo que debería suceder. Me gustaría buscar mi cadena de destino en el archivo y luego ver los 8 caracteres circundantes más o menos (es posible que deba ajustar ese número, dependiendo). ¿Cómo puedo hacer eso?
La razón por la que no puedo mirar esto es porque hay muchos cientos, si no miles de partidos. Quiero obtener una cierta cantidad de caracteres que rodean la cadena, y luego canalizarla uniqo algo para ver por qué mi búsqueda y reemplazo tiene comportamientos inesperados.
Además, ¡puede haber múltiples coincidencias en la misma línea!
text-processing
grep
string
usuario394
fuente
fuente

Respuestas:
La forma cruda de usar
grepsería algo comoEl número de puntos corresponde al número de caracteres antes / después del texto agrupado. La
-oopción hace que lagrepsalida solo coincida, no las líneas completas.Para usar
uniqen la salida, recuerde que primero debe ordenar la salida. Por lo general, lo haríasSi está interesado en el recuento de visitas para cada partido, puede obtener una buena salida utilizando
fuente
grep -o '.\{8\}yourtext.\{8\}'. Esto es un poco menos vertiginoso que contar 8 puntos.A partir de la respuesta de @rozcietrzewiacz, puedo expandirme a
fuente
-oda solo el primer partido cuando se superponen dos partidos:echo 'aaabbbccc' | grep -o 'bb