¿Cómo get + metacarácter para sed en la Terminal?

Parece que sed que viene con Mac OS 1.7.4 es el original, sin el metacarácter + . ¿Puedo get la funcionalidad + metacharacter?

  • ¿Cómo puedo desactivar overscrolling en OSX Lion?
  • Abra las Preferences del sistema con un atajo de keyboard
  • ¿Cómo se puede personalizar el layout del keyboard / accesos directos?
  • make, gcc y otras herramientas de desarrollador no están disponibles después de instalar XCode en Lion
  • Mencoder en León
  • ¿Cuál es el atajo de keyboard para la pantalla de suspensión sin tecla de expulsión?
  • El file de command Apple sale temprano
  • ¿Cuáles son los propósitos y la security para habilitar el menu oculto de debugging en la Utilidad de Discos?
  • ¿Cómo se alterna entre el audio incorporado y el audio de los auriculares sin desconectar?
  • ¿Cómo puedo configurar mi keyboard para que tenga luz de background en la pantalla de inicio de session?
  • Cómo establecer el color del indicador pnetworkingeterminado en OS X Lion Mail.app
  • ¿Por qué mi cortafuegos bloquea las conexiones incluso cuando está apagado?
  • 2 Solutions collect form web for “¿Cómo get + metacarácter para sed en la Terminal?”

    El + es una extensión GNU de sed que coincide con una o más de las expresiones anteriores, pero la versión en OS X es BSD sed . Una versión de GNU sed ha sido portada a OS X en MacPorts . De lo contrario, deberá intentar una solución alternativa.

    Por ejemplo, para hacer coincidir uno o más dígitos, puede usar [0-9][0-9]* lugar de [0-9]+

    La implementación de sed OS de OS X utiliza el formatting de expresión regular "básico" de forma pnetworkingeterminada, que no admite + . Del man re_format :

     Obsolete (``basic'') regular expressions differ in several respects. `|' is an ordinary character and there is no equivalent for its functional- ity. `+' and `?' are ordinary characters, and their functionality can be expressed using bounds (`{1,}' or `{0,1}' respectively). Also note that `x+' in modern REs is equivalent to `xx*'. The delimiters for bounds are `\{' and `\}', with `{' and `}' by themselves ordinary characters. The parentheses for nested subexpressions are `\(' and `\)', with `(' and `)' by themselves ordinary characters. [...] 

    ¿Entonces que puedes hacer? Bueno, una posibilidad es decirle a sed que use el formatting moderno con el interruptor -E . Sin embargo, esto puede forzarlo a volver a escribir otras partes de su RE para cumplir (por ejemplo, intercambiando \( ... \) con ( ... ) ). Otra opción es usar una de las forms alternativas sugeridas arriba. Aquí hay ejemplos que usan los diferentes enfoques para hacer coincidir "A" seguido de uno o más "B" o "C", seguidos por "D":

     sed -E 's/A[BC]+D/[match]/' sed 's/A[BC]\{1,\}D/[match]/' sed 's/A[BC][BC]*D/[match]/' 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).