2012-08-16 46 views
50

Quería hacer grep para palabras clave con comillas dobles dentro. Para dar un ejemplo simple:comillas dobles de escape en grep

echo "member":"time"|grep -e "member\"" 

Eso no coincide. ¿Como arreglarlo?

Respuesta

80

El problema es que no se está escapando correctamente la cadena de entrada, intente:

echo "\"member\":\"time\"" |grep -e "member\"" 

Alternativamente, puede utilizar comillas dobles sin escape entre comillas simples:

echo '"member":"time"' |grep -e 'member"' 

Es una cuestión de preferencia que le resulta más claro, aunque el segundo enfoque le impide anidar su comando dentro de otro conjunto de comillas simples (por ejemplo, ssh 'cmd').

+0

+1 ¡agradable y simple! – alfasin

+1

¿funcionará? 'echo '" member ":" time "' | grep -e" member "' no testeó – ant

+0

Casi. Necesita ser 'echo' "member": "time" '| grep -e' member "''. Ambos enfoques son válidos, pero prefiero el escape explícito, ya que la intención es más clara. – cmh

Cuestiones relacionadas