How to grep for a pattern with multiple space in between?

OS : RHEL 7.9
Shell : bash

In the below file (somestrings.txt) , I want to retrieve the lines with the pattern "Aug 6". I think there are 2 spaces in the middle.
I tried to escape the space using \ and \+ characters. But, it did not work as shown below.

Any idea what am I missing ?

$ cat somestrings.txt
-rw-------. 1 oracle oinstall 312475648 Aug  6 09:44 LOG_ORCL_1_35890_1062507603.arc
-rw-r-----. 1 oracle oinstall 389392384 Aug  6 05:17 LOG_ORCL_1_35891_1062507603.arc
-rw-r-----. 1 oracle oinstall 409188864 Aug  6 05:18 LOG_ORCL_1_35892_1062507603.arc
-rw-r-----. 1 oracle oinstall 403528704 Aug  6 05:20 LOG_ORCL_1_35893_1062507603.arc
-rw-r-----. 1 oracle oinstall 406588928 Aug  6 12:52 LOG_ORCL_1_36253_1062507603.arc
-rw-r-----. 1 oracle oinstall 426092544 Aug  6 12:53 LOG_ORCL_1_36254_1062507603.arc
-rw-r-----. 1 oracle oinstall 424885760 Aug  6 12:54 LOG_ORCL_1_36255_1062507603.arc
-rw-r-----. 1 oracle oinstall 363351040 Aug  9 08:17 LOG_ORCL_1_36455_1062507603.arc
-rw-r-----. 1 oracle oinstall 364530176 Aug  9 09:22 LOG_ORCL_1_36456_1062507603.arc
-rw-r-----. 1 oracle oinstall 427719168 Aug  9 09:25 LOG_ORCL_1_36457_1062507603.arc
-rw-r-----. 1 oracle oinstall 427726848 Aug  9 09:25 LOG_ORCL_1_36458_1062507603.arc
-rw-r-----. 1 oracle oinstall 427720704 Aug  9 09:36 LOG_ORCL_1_36459_1062507603.arc
-rw-r-----. 1 oracle oinstall 396074496 Aug  9 10:56 LOG_ORCL_1_36511_1062507603.arc
-rw-r-----. 1 oracle oinstall 441894912 Aug  9 11:56 LOG_ORCL_1_36609_1062507603.arc
 $
 $
 $ grep "Aug\ 6" somestrings.txt
 $
 $ grep "Aug\+ 6" somestrings.txt
 $
 $ grep "Aug\+\6" somestrings.txt
grep: Invalid back reference

BTW, when you use grep utility, should I enclose the pattern in single quote or double quotes ? I always get this mixed up.

The + (one or more times, in ERE=ExtendedRegularExpression) and * (zero or more times) are modifiers for the preceding character.

grep 'Aug * 6' 
egrep 'Aug +6'

grep also has the \{m,n\} modifier (the preceding character exists between m and n times)

grep 'Aug \{1,\}6'

Most ERE implementations have {m,n}

egrep 'Aug {1,}6'

GNU/Linux BRE(=BasicRegularExpression) has \+

grep 'Aug \+6'

Both double or single quotes usually work.
Single quotes are the strongest = most safe: no substitutions are done.

Most important missed point: whitespaces are not escaped in regular expressions. So, if you want to search for a space, use a space, like:

grep 'Aug  6' somestrings.txt

Plus, if you're not sure about how many spaces there are, you can use multipliers, as @MadeInGermany pointed out:

grep 'Aug  *6' somestrings.txt # One space, then another with multiplier "*"
grep -E 'Aug +6' somestrings.txt # Prefer 'grep -E', which is portable, over 'egrep', which is deprecated, for extended RegExes

Also, if you might have spaces or tabs mixed out, use groups:

grep -E 'Aug[[:space:]]+6' somestrings.txt # One or more of any combination of whitespaces

Regular expressions are a challenge. But quite a worthwhile one.

On quotes: the strings are first parsed by the shell, then sent to the command. So, follow what the shell mandates:

  • No quotes: string is divided by spaces, and each part is a parameter
  • Double quotes: quoted string is a parameter, with variable and command substitutions
  • Single quotes: quoted string is a parameter, and is passed as-is
string=some string
file=some file
grep $string $file      # Seeks 'some' in files 'string', 'some' (error!) and 'file'
grep "$string" "$file"  # Seeks 'some string' in file 'some file'
grep '$string' '$file'  # Seeks '$string' in file '$file' (error!)