Saltar la navegación

Comando y (transliterate)

El comando y (transliterate) se utiliza para convertir unos caracteres en otros, nos puede recordar al comando tr de GNU/Linux.. Su sintaxis es la siguiente:

y/conjunto_origen/conjunto_final/

Los conjuntos de caracteres origen y final tienen que tener la misma longitud, cada carácter del conjunto origen se asocia con otro del conjunto final mediante el criterio de igualdad de posición, a partir de ese momento, el comando y lo que hace es sustituir en la zona de trabajo cada aparición de los caracteres del conjunto origen por sus asociados.

$ echo hola | sed 'y/ao/ee/'
hele

El delimitador / de los argumentos del comando y puede ser cualquier carácter que no esté en los conjuntos, sucede lo mismo que vimos con el comando s.

$ echo hola | sed 'yiaoieei'
hele

En los dos conjuntos de caracteres se pueden incluir los caracteres de escape que vimos con el comando s. Podríamos convertir los espacios en nuevas líneas (\n):

$ echo "un día es un día" | sed 'y/ /\n/'
un
día
es
un
día

Este ejemplo, evidentemente, también puede hacerse con el comando s.

$ echo "un día es un día" | sed 's/ /\n/g'
un
día
es
un
día

Piensa cómo quedaría si no usamos el modificador g. Compruébalo.