How to make grep only match if the entire line matches?
grep -Fx ABB.log a.tmp
From the grep man page:
-F, --fixed-strings
Interpret PATTERN as a (list of) fixed strings
-x, --line-regexp
Select only those matches that exactly match the whole line.
Simply specify the regexp anchors.
grep '^ABB\.log$' a.tmp
Most suggestions will fail if there so much as a single leading or trailing space, which would matter if the file is being edited by hand. This would make it less susceptible in that case:
grep '^[[:blank:]]*ABB\.log[[:blank:]]*$' a.tmp
A simple while-read loop in shell would do this implicitly:
while read file
do
case $file in
(ABB.log) printf "%s\n" "$file"
esac
done < a.tmp
Here is what I do, though using anchors is the best way:
grep -w "ABB.log " a.tmp