una script reemplazar programas pasar parametros operaciones manejo entorno eliminar ejemplos caracteres cadenas cadena aritmeticas bash text-processing variable-expansion

script - variables de entorno linux bash



¿Cómo obtener la primera letra en una variable Bash? (7)

Tengo una variable Bash, $word , que a veces es una palabra u oración, por ejemplo:

word="tiger"

O:

word="This is a sentence."

¿Cómo puedo crear una nueva variable Bash que sea igual a solo la primera letra encontrada en la variable? Por ejemplo, lo anterior sería:

echo $firstletter t

O:

echo $firstletter T


Con corte:

word=''tiger'' echo "${word}" | cut -c 1



Utilizando bash 4:

x="test" read -N 1 var <<< "${x}" echo "${var}"


Ya que tienes una etiqueta sed aquí es una respuesta sed :

echo "$word" | sed -e "{ s/^/(./).*//1/ ; q }"

Juego por juego para aquellos que disfrutan de esos (¡yo sí!):

{

  • s : iniciar una rutina de sustitución
    • / : Empezar a especificar qué se va a sustituir.
    • ^/(./) : captura el primer carácter en el Grupo 1
    • .* :, asegúrese de que el resto de la línea estará en la sustitución
    • / : empezar a especificar el reemplazo
    • /1 : insertar Grupo 1
    • / : El resto se desecha ;
  • q : Salga de sed para que no se repita este bloque para otras líneas si hay alguna.

}

¡Bueno eso fue divertido! :) También puedes usar grep y etc, pero si estás en bash la magia ${x:0:1} sigue siendo la mejor solución para imo. (Pasé como una hora tratando de usar la expansión de la variable POSIX para hacer eso, pero no pude :( )


initial="$(echo $word | head -c 1)"

Cada vez que diga "primero" en la descripción de su problema, la head es una solución probable.


word=something first=${word::1}


word="tiger" firstletter=${word:0:1}