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.