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
Attachment:
signature.asc
Description: OpenPGP digital signature