[Solved] grep lines that contain 1 character followed by another character


You can go for the following two solutions:

grep -ie 'b[^e]' input_file.txt

or

grep -ie 'b.' input_file.txt | grep -vi 'be'

The first one does use regex:

  • 'b[^e]' means b followed by any symbol that is not e
  • -i is to ignore case, with this option lines containing B or b that are not directly followed by e or E will be accepted

The second solution calls grep twice:

  • the first time you look for patterns that contains b only to select those lines
  • the resulting lines are filtered by the second grep using -v to reject lines containing be
  • both grep are ignoring the case by using -i
  • if b must absolutely be followed by another character then use b. (regex meaning b followed by any other char) otherwise if you want to also accept lines where b is not followed by any other character at all you can just use b in the first grep call instead of b..

    grep -ie 'b' input_file.txt | grep -vi 'be'
    

input:

BEBE
bebe
toto
abc
bobo

result:

abc
bobo

2

solved grep lines that contain 1 character followed by another character