Questo non genera alcun output. Come mai?
$ echo 'this 1 2 3' | grep '\d\+'
Ma questi fanno:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
\+
? Cosa significa?
+
in una regex significa "uno o più dei token precedenti". In questo caso è sfuggito perché è la sintassi richiesta dal grep
motore regex predefinito di.
+
deve essere evitato se stai usando grep
; se stai usando egrep
, non lo fa. grep -E
è equivalente a egrep
(almeno per la versione GNU).