Вы создаете хук режима, который заменяет lambda
на греческий символ.
(defun sm-greek-lambda ()
(font-lock-add-keywords nil `(("\\<lambda\\>"
(0 (progn (compose-region (match-beginning 0) (match-end 0)
,(make-char 'greek-iso8859-7 107))
nil))))))
Затем вы добавляете этот хук в ваш режим:
(add-hook 'emacs-lisp-mode-hook 'sm-greek-lambda)
Por defecto, sed
usa expresiones regulares básicas (BRE ), donde el signo más no es especial. Entonces puede usarlo en el comando s
como usaría un carácter regular:
<<< 'United+States' sed 's/+/ /g'
Si desea modificar un archivo con varias instancias en la misma línea(g
)o con varias líneas
sed 's/+/ /g' filename
Si usa expresiones regulares extendidas (ERE, sed -E
en versiones de sed
que lo admiten ), entonces necesita escapar del signo más:
sed -E 's/\+/ /g'...
(Consulte esta pregunta para ver la diferencia entre las variantes de expresiones regulares.)
$ echo 'United+States' | tr '+' ' '
United States
Dado que solo está cambiando caracteres individuales, es más rápido hacerlo con tr
.
El script equivalente sed
se vería como
$ echo 'United+States' | sed 'y/+/ /'
United States
o
$ echo 'United+States' | sed 's/+/ /g'
United States
El comando y
en sed
reemplaza todas las apariciones del primer conjunto de caracteres (solo +
aquí )con el carácter correspondiente en el segundo conjunto (solo espacio aquí ).
El comando s
reemplaza el texto que coincide con una expresión regular con algún texto. Con g
, lo hace para cada aparición. Sin él, solo para el primero de cada línea de entrada.
Para cambiar signos positivos por espacios solo cuando están flanqueados por palabras:
sed 's/\>+\</ /g'
Esto cambiaría a+b
a a b
pero dejaría a + b
y a++b
sin modificar.
El patrón \>
coincide con el espacio de ancho cero al final de una palabra, y \<
es análogo para el comienzo de una palabra. GNU sed
también entiende\b
(ya sea el principio o el final de una palabra ), y BSD sed
sabe acerca de [[:<:]]
y [[:>:]]
que funcionan como \<
y \>
respectivamente.
Puede verificar este ejemplo y trabajar de acuerdo a lograr su resultado.
Ejemplo :-Este código realiza el cambio y escribe el archivo modificado en "songs2.txt". El archivo de salida contiene:
1, Justin Timberlake, Título 545, Precio $7.30
2, Taylor Swift, Título 723, Precio $7.90
3, Mick Jagger, Título 610, Precio $7.90
4, Lady Gaga, Título 118, Precio $7.30
5, Johnny Cash, Título 482, Precio $6.50
6, Elvis Presley, Título 335, Precio $7.30
7, John Lennon, Título 271, Precio $7.90
Si desea reemplazar todas las ocurrencias de "Efectivo " con " Papelera ", use:
sed 's/Cash/Trash/' songs.txt > songs2.txt
Enlace de referencia:-Una guía rápida para usar comandos Sed en Linux