GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Grep -o -w no me da la salida esperada en Mac Os X?

Si hago echo foo bar baz | grep -o -w baz la salida es foo bar baz (y una nueva línea adicional).
El resultado esperado sería baz ya que la opción -o solo debería mostrar la parte coincidente.
Estoy usando Mac OS X 10.7.1 y la versión de grep es grep (GNU grep) 2.5.1

Respuesta aceptada:

Hay una solución mediante el uso de grep ¡Sintaxis de expresiones regulares para hacer coincidir la cadena vacía al principio y al final de una palabra!

# grep regex syntax for matching words only
man grep | less -p '\<'

# POSIX 1003.2 regular expression syntax for matching words only
# should work for sed, ed, ...
man re_format | less -p '\[\[:<:\]\]'

echo 'foo bar baz' | egrep -o '\<baz\>'

echo 'foo bar baz' | sed -n '/.*[[:<:]]\(baz\)[[:>:]].*/s//\1/p'

Si insiste en usar grep ‘s -w flag, pruebe el Rudix 2010 precompilado grep binario (grep-2.5.4-1.dmg).

http://rudix.org/packages-ghi.html#grep


Linux
  1. ¿Por qué la expresión regular funciona en X pero no en Y?

  2. ¿Por qué Cd no es un programa?

  3. ¿Por qué `md5sum` no da el mismo hash que Internet?

  4. ¿Por qué Bash no almacena comandos que comienzan con espacios?

  5. ¿Por qué puedo ver la salida de los procesos en segundo plano?

Por qué hice el cambio de Mac a Linux

¿Por qué no instalar paquetes de software desde Internet?

Salida a Stdout y al mismo tiempo Grep en un archivo?

¿Por qué la salida de `du` a menudo es tan diferente de `du -b`?

¿Por qué pr_debug del kernel de Linux no da ningún resultado?

¿Por qué no bloquear ICMP?