On 2022-05-28 at 15:40, Jim Popovitch wrote: > Not exactly Debian specific, but hoping that someone here can help. > > I have a file of regex patterns and I use grep like so: > > ~$ grep -f patterns.txt /var/log/syslog > > What I'd like to get is a listing of all lines, specifically the line > numbers of the regexps in patterns.txt, that match entries in > /var/log/syslog. Is there a way to do this?
I don't know of a standardized way to do that (if anyone else wants to suggest one, I'm open to learn), but of course it *can* be done, via scripting. Off the top of my head, I came up with the following for line in $(seq 1 $(wc -l patterns.txt | cut -d ' ' -f 1)) ; do if grep $(head -n $line patterns.txt | tail -n 1) /var/log/syslog > /dev/null ; then echo $line ; fi done I just tested that on my own system, with a different file (since I'm not root right now) and a couple of exact-string patterns found by examining that file, and it seems to work as intended. YMMV. -- The Wanderer The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. -- George Bernard Shaw
signature.asc
Description: OpenPGP digital signature