¿Cómo puedo obtener / filtrar entradas del historial en un rango específico?
Tengo un archivo de historial grande y uso con frecuencia
history | grep somecommand
Ahora, mi memoria es bastante mala y también quiero ver qué más hice cuando ingresé el comando.
Por ahora hago esto: obtener partido, digamos 4992 somecommand, luego lo hago
history | grep 49[0-9][0-9]
esto suele ser lo suficientemente bueno, pero preferiría hacerlo con más precisión, es decir, ver comandos desde 4972 hasta 5012, es decir, 20 comandos antes y 20 después.
Me pregunto si hay una manera más fácil? Sospecho que un script personalizado está en orden, pero tal vez alguien más haya hecho algo similar antes.

Respuestas:
Puede indicar
grepque imprima algunas líneas que rodean el partido, por ejemplo, 3 antes y 5 después:grep -C 4es equivalente agrep -A 4 -B 4.Pero a menudo no sabrá con precisión cuántas líneas desea de antemano. Así que usa menos y busca dentro de él. Incluso puede iniciar la búsqueda desde la línea de comando:
fuente
less! No sabía que podía hacer esoPrueba fc:
... es un comando bash incorporado. (así que no lo intentes en tcsh:>)
fuente
tratar
history | grep -C20 '^4992'fuente