BASH Avanzado Idióms para la gestión de la sensibilidad de los casos

BASH Avanzado Idióms para la gestión de la sensibilidad de los casos

Cada vez que trabajamos con cadenas textuales, tarde o temprano surge el tema del caso. ¿Una palabra debe ser completamente en mayúscula, completamente minúscula, con una carta capitalizada al comienzo de la palabra o oración, y así sucesivamente?.

Un idioma es una expresión del lenguaje natural de una tarea de programación simple. Por ejemplo, en el Dormir 10 Comando (que detendrá el terminal que está trabajando durante diez segundos), la palabra dormir es una expresión del lenguaje natural de lo que es una construcción de codificación basada en el tiempo, desarrollada en el paquete de software Bash GNU CoreUtils.

Hay una serie de modismos especiales con unidos a variables (i.mi. Sufijos que se pueden agregar a un nombre de variable, que indican lo que nos gustaría hacer con una variable dada), que se puede usar en Bash para hacer este tipo de conversiones más fácilmente en la mosca en lugar de tener que usar, por ejemplo, la corriente SED Editor con una expresión regular para hacer lo mismo.

Si está interesado en usar expresiones regulares, eche un vistazo a nuestras reglas bash para principiantes con ejemplos avanzados bash regex con artículos de ejemplos!

Esto hace que trabajar con variables que necesitan modificación de casos, o si Las pruebas de declaración mucho más fácil y proporciona una gran flexibilidad. Los modismos se pueden agregar directamente dentro del si declaraciones y no necesita emplear una subshell con sed.

Si bien la sintaxis se ve ligeramente compleja para comenzar, una vez que aprenda un pequeño truco de soporte mental para recordar las teclas correctas, estará en camino de usar estos modismos en su próximo script o Bash One-Liner script en la línea de comandos!

En este tutorial aprenderás:

  • Cómo usar el ^, ^^, , y ,, Bash Variable sufijo modismos
  • Cómo usar una expresión regular [] rango de lenguaje en combinación con estos
  • Cómo usar el ^ y , modismos directamente desde adentro si declaraciones
  • Ejemplos detallados ejemplificando el uso de ^, ^^, , y ,,
BASH Avanzado Idióms para la gestión de la sensibilidad de los casos

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución de Linux
Software Línea de comando bash, sistema basado en Linux
Otro Cualquier utilidad que no esté incluida en el shell bash de forma predeterminada se puede instalar utilizando sudo apt-get instalación de utilidad de utilidad (o yum instalación para sistemas basados ​​en redhat)
Convenciones # - requiere que los comandos de Linux se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux se ejecuten como un usuario regular no privilegiado


Ejemplo 1: Hacer las variables completas mayúsculas

Comencemos con un ejemplo que muestra cómo imprimir una variable como mayúsculas:

$ Var = "hazme mayúsculas"; echo "$ var ^^" me hace mayúsculas 

Primero establecemos la variable Varilla a Hazme mayúsculas. La forma en que hicimos esto es usando ^^ Al final del nombre de la variable: un sufijo, un idioma bash, para decirle al intérprete interno bash que sustituya nuestro texto por su versión en mayúsculas.

Tenga en cuenta que cada vez que se establece una variable, se usará el Var = Sintaxis, dejando la variable principal (ps) Idioma de bash. Los usos posteriores, que no son reasignos por sí mismos, utilizarán el ps sintaxis. Por lo tanto, el eco usa ps.

También puedes ver y siendo utilizado alrededor del nombre de la variable. Si bien esto no es estrictamente necesario:

$ Var = 1; echo $ var 1 

Es muy recomendable, y personalmente lo recomiendo también, citar siempre correctamente las variables, ya que evita errores e incluso problemas como donde no está claro para el intérprete detrás de escena cuando una variable termina:

$ Var = "a"; Echo "$ Vara" 

En el primer ejemplo, el intérprete bash ve un nombre variable que comienza (ps) y sigue leyendo hasta que llega a un espacio, como se puede ver aquí:

$ Var = "a"; echo "$ var a" a 

Aquí tuvimos que presentar un espacio solo para hacer nuestro eco Funciona correctamente.

En otras palabras, en nuestro ejemplo anterior, el nombre variable que Bash ve es Vara y no puede dividirse/ver dónde termina la variable y el resto de la cadena a la salida comienza o reinicie. Comparemos esto con variables de encapsulación correctamente con y :

$ Var = "a"; echo "$ var a" aa 

Aquí no se ven problemas; está claro para el intérprete de la fiesta que $ Var es la variable y a es el texto a seguir después de él, todo gracias a la encapsulación adecuada de nuestra variable.

Esto también se traduce, de manera fuerte, al uso del especial ^^ Idiom y otros modismos de Bash. Ejemplamos esto:

$ Var = "hazme mayúsculas"; echo $ var ^^ Hazme upcase ^^ $ var = "hazme upcase"; echo "$ var ^^" Hazme mayúscula ^^ 

En este caso, Bash puede ver que nos gustaría el Varilla variable a imprimir, aunque interpretas ^^ como texto estándar. Como se puede ver claramente a partir de esto y ejemplos anteriores, es una mejor práctica rodear siempre los nombres de variables con y .

Ejemplo 2: Hacer variables completas en minúsculas

Ahora que hemos visto cómo hacer una variable completa en mayúsculas utilizando el ^^ Idiom, veamos cómo cambiar las variables completas a minúsculas utilizando el ,, modismo:

$ Var = "hazme minúsculas"; echo "$ var ,," Hazme minúsculas 

Es un idioma de sintaxis interesante para usar ,, Como sufijo de la variable, pero funciona correctamente como se muestra.



Un poco de truco de apoyo mental para recordar estos

Una excelente manera/método para recordar cualquier cosa es confirmar visualmente o imaginar lo que sea necesario recordar. Si puede agregar algunas construcciones mentales a esto, como hacer relaciones con otras cosas, es probable que recuerde lo mismo la próxima vez.

Estos es echar un vistazo a su teclado físico, y si está utilizando un teclado de querty como yo, verá eso ^ es shift-6 y ',' está justo al lado del metro. ¿Cómo ayuda esto??

En primer lugar, el 6/^ La clave está en la parte superior y la , La tecla está en la parte inferior. A continuación, el , La tecla también es la que está en la parte inferior más cercano Caracter no alfabeto al 6 llave. Por último, ambas teclas están en el lado derecho del teclado que recuerdan a uno que estos idiomas son un sufijo, no prefijo, a una variable

Una vez que haya confirmado visualmente esto una o dos veces, es probable que se mantenga bastante bien en la memoria y podrá usar estos idiomas en su próximo script bash o una línea sin tener que volver a referir la sintaxis.

Ejemplo 3: Cambiar letras específicas

También podemos hacer una letra específica en mayúsculas:

$ Var = "ababab cdcdcd"; echo "$ var ^^ b" ababab cdcdcd 

O minúsculas:

$ Var = "ababab cdcdcd"; echo "$ var ,, c" ababab cdcdcd 

Hay dos gotchas/limitaciones aquí. En primer lugar, debemos asegurarnos de especificar el caso correcto de la carta para comenzar con. Por lo tanto, especificando un reemplazo en minúsculas para la letra C no trabajará:

$ Var = "ababab cdcdcd"; echo "$ var ,, c" ababab cdcdcd 

Como simplemente no hay minúsculas C En el texto, solo hay C (mayúscula), y esto funciona bien como el ejemplo que se muestra arriba el último.

Tampoco podemos especificar múltiples letras usando cualquiera de estos formatos presumibles, pero no de trabajo:

$ Var = "ababab cdcdcd"; echo "$ var ,, cd" ababab cdcdcd $ var = "ababab cdcdcd"; echo "$ var ,, c ,, d" ababab cdcdcd 

La forma de hacer que esto funcione correctamente es usar el formato de expresión regular de [... Lista de selección ...], como sigue:

$ Var = "ababab cdcdcd"; echo "$ var ,, [cd]" ababab cdcdcd 

Comenzar la oración con un carácter en mayúsculas o minúsculas

Cambiar solo la primera letra también es posible:

$ Var = "ababab cdcdcd"; echo "$ var^" ababab cdcdcd $ var = "ababab cdcdcd"; echo "$ var," ababab cdcdcd 

Aquí usamos un solo ^ o , Para hacer la primera letra mayúscula o minúscula.



Usando estos modismos de sufijo variable bash desde dentro de las declaraciones

También podemos usar estos modismos de sufijo variables bash directamente desde adentro si declaraciones:

$ Var = "ABC"; if ["$ var ^^" == "ABC"]; Entonces Echo 'coincidió!'; de lo contrario no coincide!'; FI coincidió! 

Aquí tenemos una variable Varilla con valor a B C. A continuación, dentro del si Declaración, cambiamos el contenido de la variable, dinámicamente, en A B C mediante el uso $ Var ^^ Como nuestra primera cadena de comparación en el si declaración. A continuación, comparamos con A B C y tenemos una coincidencia, lo que demuestra que nuestra sustitución en línea a la mayúscula funcionó.

Esto es mucho más simple que comenzar una subshell y hacer lo mismo usando sed y una expresión regular:

$ Var = "ABC"; if ["$ (echo" $ var "| sed 's | [a-z] | \ u & | g')" == "ABC"]; Entonces Echo 'coincidió!'; de lo contrario no coincide!'; FI coincidió! 

El \ U & en esto sed La instrucción se puede leer como 'Cambiar cualquier captura (realizada por [Arizona] y referencias por Y en \ U &)a la mayúscula (\ U ') equivalente al mismo. Compare la complejidad de esta solución con la anterior.

Otro si es un ejemplo

$ Var = "ABC"; if [["$ var ^^ b" == * "b" *]]; Entonces Echo 'coincidió!'; de lo contrario no coincide!'; FI coincidió! 

En este ejemplo, cambiamos el texto a B C a a B C mediante el uso $ Var ^^ b Como se describió anteriormente (solo la carta de la carta b). Luego usamos una comparación que tiene un asterisco a la izquierda y a la derecha de la letra B. Esto significa que estamos buscando ... cualquier cadena ... seguido de B seguido de ... cualquier cadena ... (tenga en cuenta que también se puede dejar el asterisco inicial o final para que coincidan con las oraciones que comienzan con, o terminan con B respectivamente).

Conclusión

En este artículo, exploramos los modismos de sufijo variable Bash ^, ^^, , y ,,. Echamos un vistazo a cómo se pueden usar para sustituir las cuerdas a sus variantes superior e minúscula, y cómo trabajar con una o más letras individuales, incluida la realización de la primera letra en mayúsculas o minúsculas.

También exploramos cómo usar estos idiomas más lejos de la bash si las declaraciones. Finalmente proporcionamos un truco de soporte de memoria propuesto para recordar qué personajes se pueden usar y dónde, como modismos bash para la sustitución superior y minúscula del texto.

Déjanos un pensamiento con tus mejores comandos de sustitución de casos de texto! Disfrutar!

Tutoriales de Linux relacionados:

  • Bash Script: Pausa Script antes de continuar
  • Bash Regex avanzado con ejemplos
  • Gestión de procesos de fondo bash
  • Scripting de bash y gestión de procesos multiprocesos en el ..
  • Bash Loops con ejemplos
  • Variables de Bash especiales con ejemplos
  • Tiempo sus scripts y procedimientos de Bash desde el interior del código
  • Bash regexps para principiantes con ejemplos
  • Comparar cadena en Bash
  • Correcto de análisis variable y citando en Bash