Nie generuje to żadnych danych wyjściowych. Dlaczego?
$ echo 'this 1 2 3' | grep '\d\+'
Ale te robią:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
\+? Co to znaczy?
+w wyrażeniu regularnym oznacza „jeden lub więcej poprzednich tokenów”. W tym przypadku jest to znak ucieczki, ponieważ jest to składnia wymagana przez grepdomyślny silnik wyrażeń regularnych.
+należy uciec, jeśli używasz grep; jeśli używasz egrep, nie działa. grep -Ejest równoważne egrep(przynajmniej dla wersji GNU).