Me gustaría usar grep
con una expresión PCRE que contenga el <
carácter. Bash piensa que quiero redirigir, pero no quiero. ¿Cómo puedo escapar <
?
10
Me gustaría usar grep
con una expresión PCRE que contenga el <
carácter. Bash piensa que quiero redirigir, pero no quiero. ¿Cómo puedo escapar <
?
Pude hacerlo con una barra invertida:
25 % grep \< xmospos.c
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <X11/Xlib.h>
Un citado menor que, y un citado, con una barra invertida menor que ambos dieron respuestas tontas.
grep -oP '(?< )(.*)$'
no funciona con comillas simples, por ejemplo. Probé al principio.(?<! )(.*)$
o(?<= )(.*)$
?Dos reglas simples:
\C
escapa al siguiente personaje, sea lo que sea, que no sea una nueva línea.'text'
escapan a cualquier carácter entre ellas, incluida una barra diagonal inversa, pero sin incluir una comilla simple (ya que marca el final del texto citado).Así:
Si necesita pasar un argumento que contiene comillas simples, puede usarlo
'\''
para "escapar" de una comilla simple dentro de comillas simples. Técnicamente, lo que esto hace es terminar el primer texto literal, luego poner un literal'
en la misma palabra, luego más texto literal aún en la misma palabra.El resto de las reglas de cotización (resumidas):
!"#$&'()*;<>?[\]^`{|}~
en blanco y (en otras palabras, los siguientes caracteres son seguros: letras, dígitos%+,-./:=@_
y caracteres no ASCII)."$\`
y (en shells con historial habilitado)!
. Aparecerá una barra invertida entre comillas dobles en la cadena a menos que preceda a uno de los caracteres no literales.Estas reglas son para bash y otros shells de estilo Bourne (como ash y ksh). También se aplican a zsh (excepto que
=
después del espacio en blanco puede ser necesario citar). Las reglas en csh / tcsh y en Fish son diferentes.fuente