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 uniq
o 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
grep
sería algo comoEl número de puntos corresponde al número de caracteres antes / después del texto agrupado. La
-o
opción hace que lagrep
salida solo coincida, no las líneas completas.Para usar
uniq
en 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
-o
da solo el primer partido cuando se superponen dos partidos:echo 'aaabbbccc' | grep -o 'bb