sed
tiene un comando y
que es análogo atr
:
y/string1/string2/
Replace all occurrences of characters in string1 with the corresponding characters in string2.
$ echo 'a big cat' | sed -e 'y/abc/def/'
d eig fdt
y
no admite rangos de caracteres a-z
o clases[:alpha:]
como lo hace tr
, ni los modos de complemento -c
y -C
. La eliminación(-d
)es posible con s//
, al igual que la sustitución de ejecuciones con caracteres individuales(-s
). Como en todo sed
, está fundamentalmente orientado a líneas -. y
a veces es útil en medio de un script sed
más largo, pero tr
probablemente hace un mejor trabajo si eso es todo lo que está haciendo.
awk
no tiene equivalente a la funcionalidad básica de tr
, aunque, por supuesto, podría reemplazar los caracteres uno a la vez. El lenguaje awk es bastante general y puede escribir bucles y condicionales suficientes para implementar cualquier transformación que desee si está lo suficientemente motivado. Si estuviera aún más motivado, probablemente también podría lograrlo en sed
. Las herramientas no son realmente equivalentes en ningún sentido.