Подтвердить что ты не робот

Как получить первую букву в переменной Bash?

У меня есть переменная Bash, $word, которая иногда является словом или предложением, например:

word="tiger"

Или:

word="This is a sentence."

Как я могу создать новую переменную Bash, которая равна только первой букве, найденной в переменной? Например, вышеупомянутое будет:

echo $firstletter
t

Или:

echo $firstletter
t
4b9b3361

Ответ 1

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

Каждый раз, когда вы говорите "первым" в описании проблемы, head является вероятным решением.

Ответ 2

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

Ответ 3

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

Ответ 5

Поскольку у вас есть тег sed, вот ответ sed:

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

Играйте за игрой для тех, кому это нравится (я делаю!):

{

  • s: запустите подстановку
    • /: Начать, указывая, что должно быть заменено.
    • ^\(.\): захватить первый символ в группе 1
    • .*:, убедитесь, что остальная часть строки будет в подстановке
    • /: начните указывать замену
    • \1: вставить группу 1
    • /: Остальное отбрасывается ;
  • q: Закройте sed, чтобы он не повторил этот блок для других строк, если они есть.

}

Хорошо, это было весело! :) Вы также можете использовать grep и т.д., но если вы находитесь в bash, магия ${x:0:1} по-прежнему является лучшим решением imo. (Я потратил час, пытаясь использовать расширение переменной POSIX, но не мог :()

Ответ 6

С вырезом:

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

Ответ 7

Использование bash 4:

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