Tengo un archivo de texto en el que algunas palabras están impresas en TODAS LAS MAYÚSCULAS. Quiero poder convertir todo en el archivo de texto a minúsculas, usando sed
. Eso significa que la primera oración se leería: "Tengo un archivo de texto en el que algunas palabras están impresas en mayúsculas".
131
tr
comando? A veces es más adecuado quesed
.Respuestas:
Con
tr
:Funciona con GNU
sed
(BSDsed
no es compatible\L
\U
):fuente
sed -e 's/.*/\L&/' input.txt > output.txt
para GNU sed funciona bien tambiénman sed
para saber qué versión está utilizando.U
frente a cada líneaSi tiene extensiones GNU, puede usar sed's \ L (coincidencia completa inferior, o hasta que se alcance \ L [inferior] o \ E [final - alternar la carcasa]), así:
Nota: '&' significa el patrón de coincidencia completo.
Como nota al margen, las extensiones GNU incluyen \ U (superior), \ u (siguiente carácter superior de coincidencia), \ l (siguiente carácter inferior de coincidencia). Por ejemplo, si quisieras hacer una frase en camello:
Nota: Dado que se supone que tenemos extensiones GNU, también podemos usar la opción dash-r (expresiones regulares extendidas), que permite \ w (carácter de palabra) y lo libera de tener que escapar del paréntesis de captura y uno o más cuantificador (+). (Aparte:
\W [non-word], \s [whitespace], \S [non-whitespace]
también son compatibles con dash-r, pero\d [digit]
y\D [non-digit]
no lo son).fuente
sed -ri 's/MATCH_WHATEVER/\L&/i' input-file.ext
- el uso del/i
modificador hace que el partido no distinga entre mayúsculas y minúsculas y, por lo tanto, es opcional. El-i
interruptor le dice a sed que modifique el archivo en el lugar. No es necesario redirigir la salida a otro archivo si no es necesario.\E [end - toggle casing off]
. Gracias !También puede hacerlo fácilmente con
awk
, si está dispuesto a considerar una herramienta diferente:fuente
tolower
no podrá manejarÀ
por ejemplols | awk '{print "mv " $0 " " tolower($0)}' | sh
Aquí hay muchas soluciones:
Para sobresalir con perl, tr, sed y awk
En minúsculas con perl, tr, sed y awk
Complicado bash a minúsculas:
Complicado golpe a mayúscula:
Bash simple a minúsculas:
Golpe simple a mayúscula:
Tenga en cuenta que $ {v,} y $ {v ^} solo cambian la primera letra.
Deberías usarlo de esa manera:
fuente
Salida:
fuente
Me gustan algunas de las respuestas aquí, pero hay un comando sed que debería funcionar en cualquier plataforma:
De todos modos, es fácil de entender. Y conocer el comando y puede ser útil a veces.
fuente
Si está utilizando posix sed
Selección para cualquier caso para un patrón (convertir el patrón buscado con este sed que usar el patrón convertido en el comando deseado usando regex:
convertir en minúsculas
lo mismo para mayúsculas reemplazar letra minúscula entre // por equivalente superior en el sed
Que te diviertas
fuente
y//
cambio en el contenido de la fuente o podría perder la búsqueda del patrón.corto, dulce y ni siquiera necesitas redireccionar :-)
fuente