GNU/Linux >> Tutoriales Linux >  >> Linux

linux bash, cadena camel case para separar por guión

Propongo usar sed para hacer eso:

NEW=$(echo MyDirectoryFileLine        \
     | sed 's/\(.\)\([A-Z]\)/\1-\2/g' \
     | tr '[:upper:]' '[:lower:]')

UPD Olvidé convertir a minúsculas, código actualizado


Puedes usar s/\([A-Z]\)/-\L\1/g para encontrar una letra mayúscula y reemplazarla con un guión y su minúscula. Sin embargo, esto le da un guión al comienzo de la línea, por lo que necesita otra expresión sed para manejar eso.

Esto debería funcionar:

sed --expression 's/\([A-Z]\)/-\L\1/g' \
    --expression 's/^-//'              \
    <<< "MyDirectoryFileLine"

Linux
  1. Prepara tu indicador de Bash para el invierno en Linux

  2. ¿Cómo puedo agregar una cadena al comienzo de cada archivo en una carpeta en bash?

  3. Cómo reemplazar una cadena en varios archivos en la línea de comando de Linux

  4. ¿Qué hace 'bash -c'?

  5. Eliminar todos los caracteres especiales y mayúsculas y minúsculas de la cadena en bash

Comando de historial en Linux (Bash History)

Cómo usar bash if -z y if -n para probar cadenas en Linux

Sustitución de cadena en Bash

Bash Scripting – Manipulación de cadenas

Bash Scripting – Declaración de caso

Qué hacer en caso de pánico en el kernel de Linux