¿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
grep
que imprima algunas líneas que rodean el partido, por ejemplo, 3 antes y 5 después:grep -C 4
es 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