for f in *
do
echo $f================
while read line
do
grep -E "$line" /dev/null 2>&1
[[ "$?" = 2 ]] && echo $line
done < $f
done
practice grep seems not always give the warning, even though every reported line is matched against every regexp (?)
On Thu, 5 Jun 2025, Richard Lewis wrote:
It seems grep regards differently the command line pattern and the
-f patternfile.
Command
for f in * ; do echo $f================; grep -E -f $f /dev/null 2>&1 ; done reports only two problems:
...
login================
grep: login:8: Unmatched ( or \(
...
systemd================
grep: systemd:21: Unmatched ( or \(
...
But both comes from comments:
# old messages, no longer seen (?)
# services with Restart=always ((eg console-getty.service)
IMHO the most cases the problem is that literal square brackets
are unescaped. E.g.
| courier================
| grep: Unmatched [, [^, [:, [., or [=
| ^(w{3} [ :0-9]{11}|[0-9T:.+-]{32}) [._[:alnum:]-]+ ((imap|pop3)(login|d-ssl)|couriertcpd): (LOGOUT|TIMEOUT|DISCONNECTED), ip=[[.:[:alnum:]]+](, port=[[[:digit:]]+])?, headers=[[:digit:]]+, body=[[:digit:]]+$
ip=[[.:[:alnum:]]+] and port=[[[:digit:]]+] are suspicious.
I guess they should be ip=\[[.:[:alnum:]+]\] and \[[[:digit:]+]\] .
| cron-apt================
| grep: Invalid range end
| ^(w{3} [ :[:digit:]]{11}|[0-9T:.+-]{32}) [._[:alnum:]-]+ cron-apt: CRON-APT RUN [[-[:alnum:]/]+]: w{3} w{3} [ [:digit:]]+ [:[:digit:]]{8} w{3,4} [[:digit:]]{4}$
[[-[:alnum:]/]+] should be \[[-[:alnum:]/]+\] .
| dovecot================
| grep: Unmatched [, [^, [:, [., or [=
| ^(w{3} [ :[:digit:]]{11}|[0-9T:.+-]{32}) [._[:alnum:]-]+ (dovecot: )?(imap|pop3)-login: Disconnected [[.:[:xdigit:]]+]$
I bet on \[[.:[:xdigit:]]+\] .
| exim4================
| grep: Unmatched [, [^, [:, [., or [=
| ^[-0-9]{10} [0-9:]{8} [-[:alnum:]]+ [=-]> [@._[:alnum:]-]+ <?[@._[:alnum:]-]+>? R=dnslookup T=remote_smtp H=[._[:alnum:]-]+ [[.0-9]{7,15}]$
[[.0-9]{7,15}] is probably \[[.0-9]{7,15}\] .
| horde3================
| grep: Unmatched [, [^, [:, [., or [=
| ^(w{3} [ :0-9]{11}|[0-9T:.+-]{32}) [._[:alnum:]-]+ .+[[0-9]+]: [horde] Login success for [@._[:alnum:]-]+ [[.0-9]{7,15}] to Horde [on line [0-9]+ of ".+"]$
\[[.0-9]{7,15}] to Horde [on line [0-9]+ of ".+"\]
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 497 |
Nodes: | 16 (2 / 14) |
Uptime: | 07:54:43 |
Calls: | 9,780 |
Calls today: | 21 |
Files: | 13,748 |
D/L today: |
1 files (1K bytes) |
Messages: | 6,186,961 |