How can I get/filter history entries in a specific range?
I have a large history file and frequently use
history | grep somecommand
Now, my memory is pretty bad and I also want to see what else I did around the time I entered the command.
For now I do this:
get match, say 4992 somecommand
, then I do
history | grep 49[0-9][0-9]
this is usually good enough, but I would much rather do it more precisely, that is see commands from 4972 to 5012, that is 20 commands before and 20 after.
I am wondering if there is an easier way? I suspect, a custom script is in order, but perhaps someone else has done something similar before.
Best Answer
You can tell
grep
to print some lines surrounding the match, e.g., 3 before and 5 after:grep -C 4
is equivalent togrep -A 4 -B 4
.But often you won't know precisely how many lines you want in advance. So use less and search inside it. You can even launch the search from the command line: