Its been asked several times but its not clear to me yet.
I have the following text in a file ( data.txt, tab delimeted ):
ABC 12 ABC-AS 14 DEF 18 DEF-AS 9 Now I want to search for ABC and DEF, but not ABC-AS, DEF-AS as a result.
grep -w ABC data.txt Output:
grep -w ABC data.txt ABC ABC-AS grep --no-group-separator -w "ABC" data.txt ABC ABC-AS grep --group-separator="\t" -w "ABC" data.txt ABC ABC-AS
grephas Perl regexes available, you can use a negative lookahead. You can look forABCand then post-filtergrep -v 'ABC-[A-Z]'or thereabouts.grep '^ABC[[:space:]]'to find the lines that start withABCand notABC-AS? Orgrep -E '^(ABC|DEF)[[:space:]]'if you wantDEFtoo.grep "ABC\s" data.txt. For multiple patterns:grep -e "ABC\s" -e "DEF\s" data.txt