BASH Avanzado Idióms para la gestión de la sensibilidad de los casos
- 3135
- 130
- Eduardo Tapia
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 adentrosi
declaraciones - Ejemplos detallados ejemplificando el uso de
^
,^^
,,
y,,
Requisitos y convenciones de software utilizados
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
- « Crear redireccionamiento y reescribir reglas en .Htaccess en Apache Webserver
- Cómo leer y crear archivos CSV usando Python »