• + 0 comments

    Since the grep in this environment doesn't support Perl-style regular expressions, you can't use "\d". If you use Basic Regular Expressions (the default and equivalent to --basic-regexp or -G), you can use the character class [0-9] (see https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html).

    In BRE, the capture group must be defined in a subexpression with \( \) and then can be recalled with \1 (see https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions). Finally, BRE doesn't support using the precise '?' matching operator to pick out the optional space, but it does permit the more greedy '*'. So you end up with:

    grep '\([0-9]\)\s*\1'