Sed: caso de cambio del grupo de sustitución

votos
8

¿Cómo puedo cambiar el caso de un grupo coincidente de menor a mayor con el comando sed Unix?

Gracias Martin

Publicado el 23/04/2009 a las 01:38
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
13

Rodee su patrón coincidente entre paréntesis, es decir: \ (patrón \) y luego use \ U \ 1 como texto de reemplazo. \ 1 es el patrón coincidente y \ U fuerza mayúsculas.

echo abcdef | sed -e 's/\(abc\)/\U\1/'
Respondida el 29/11/2009 a las 03:01
fuente por usuario

votos
3

Ejecutarlo a través de tr?

Es una broma. Puede usar la transformación y /// para hacer cambios de casos. No es terriblemente conveniente, pero es funcional. Si su transformación se vuelve demasiado compleja, puede considerar escalar a Perl.

Respondida el 23/04/2009 a las 01:43
fuente por usuario

votos
1

Sé que esta es una pregunta sed, solo quería señalar que hay varias formas de hacer esa función. awk es una herramienta que se creó para las discusiones de texto y, en algunos casos, es más fácil de usar. En mi opinión, este es uno de estos tiempos:

#!/bin/sh
INFO="This is a test"
ALLCAPS=`echo $INFO | awk '{print toupper($0)}'`
echo $ALLCAPS

Rendimientos: ESTA ES UNA PRUEBA

Respondida el 09/05/2009 a las 14:21
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more