Estoy tratando de hacer coincidir una cadena:
* * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw
con:
crontab -l | grep '^[^#].*/usr/local/bin/growlnotify.*\-n \'myApp\'.*$'
No funciona: nada coincide.
Pero:
crontab -l | grep '^[^#].*/usr/local/bin/growlnotify.*\-n.*$'
funciona muy bien:
* * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw
¿Cuál es el problema con \'myApp\'?
¿Cómo escapar de una cita simple en grep / sed?

Respuestas:
uno puede escapar de comillas simples con
-eopción y usando representación hexadecimal :o en grep usando la representación hexadecimal y la
-Popción:ss64 como referencia:
fuente
'encierran la expresión con comillas dobles"(2 caracteres modificados) y eliminando las barras invertidas\(3 caracteres eliminados). Prueba de copiar / pegarecho "* * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw" | grep "^[^#].*/usr/local/bin/growlnotify.*-n 'myApp'.*$"Lamento decirlo, pero no puede escapar de comillas simples dentro de comillas simples. Tendrás que usar comillas dobles. Puedes demostrártelo haciendo:
Su caparazón esperará otra cotización.
fuente