Pregunta:
Tengo un archivo temp
con algunos contenidos en minúsculas y mayúsculas.
Aporte
Contenido de mi archivo temp
:
hi
Jigar
GANDHI
jiga
Quiero convertir todo de arriba a abajo .
Mando
Probé el siguiente comando:
sed -e "s/[A-Z]/[a-z]/g" temp
pero salió mal.
Producción
Lo quiero como:
hi
jigar
gandhi
jiga
¿Qué debe estar en la parte sustituta del argumento de sed
?
Respuesta:
Si su entrada solo contiene caracteres ASCII, puede usar tr
como:
tr A-Z a-z < input
o (menos fácil de recordar y escribir IMO; pero no limitado a letras latinas ASCII, aunque en algunas implementaciones, incluido GNU tr
, todavía está limitado a caracteres de un solo byte, por lo que en las configuraciones regionales UTF-8, todavía limitado a letras ASCII):
tr '[:upper:]' '[:lower:]' < input
si tienes que usar sed
:
sed 's/.*/\L&/g' < input
(aquí asumiendo la implementación GNU).
Con POSIX sed
, necesitaría especificar todas las transliteraciones y luego puede elegir qué letras desea convertir:
sed 'y/AǼBCΓDEFGH.../aǽbcγdefgh.../' < input
Con awk
:
awk '{print tolower($0)}' < input