GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo convertir texto específico de una lista en mayúsculas?

Estás exagerando, ¡aprovecha la estructura de tus archivos para mantenerlo simple!

Si encontramos la cadena [United en una línea, escribir en mayúsculas todo, desde la llave de cierre hasta el final de la línea, da el resultado que busca. Traduciendo esto al lenguaje Sed,

sed '/\[United/s/].*/\U&/' file

Tenga en cuenta que lo anterior es específico de GNU Sed. Si no está disponible pero en un sistema POSIX, puede usar Ex (o ver la versión Awk de αғsнιη) con una sintaxis similar:

printf '%s\n' 'g/\[United/s/].*/\U&/' '%p' | ex file

Para guardar los cambios en el archivo en lugar de imprimir los resultados, cambie %p a x .


Usando awk :

awk -F"[][]" '$2 ~/^United/ { $2="["$2"]"; $3=toupper($3); }1' OFS='' infile

dentro de [...] definimos ambos ] y [ como separador de campo y luego verificando contra el segundo campo si comienza con United texto, si es así, vuelva a agregar [] alrededor del segundo campo (supongo que no hay otra columna que incline estos caracteres, de lo contrario, esos campos se perderán esto); luego convertimos la tercera columna a su valor en mayúsculas; el modismo 1 es activador awk impresión predeterminada (una especie de condición siempre verdadera).


Linux
  1. Cómo distinguir binarios de archivos de texto en Linux

  2. ¿Cómo puedo encontrar un archivo específico desde una terminal Linux?

  3. ¿Cómo convierto una imagen de disco de Linux en un archivo disperso?

  4. Cómo convertir un archivo de texto de Shift JIS a UTF-8 y viceversa desde la terminal

  5. Cómo convertir un archivo TAR en un archivo ISO

Cómo mostrar datos de un archivo de texto en Linux

Bash scripting:cómo leer datos de archivos de texto

Cómo extraer direcciones de correo electrónico de un archivo de texto en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo quitar todos los caracteres de espacio en blanco de un archivo de texto

Cómo hacer eco en un archivo