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
Una forma portátil de hacerlo es usar la expansión de parámetros (que es una característica de POSIX) :
word=''tiger''
first="${word%"${word#?}"}"
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 desedpara 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}