[bash] Bash 변수에서 첫 글자를 얻는 방법은 무엇입니까?

$word때때로 단어 또는 문장 인 Bash 변수 가 있습니다. 예 :

word="tiger"

또는:

word="This is a sentence."

변수에서 찾은 첫 글자와 동일한 새로운 Bash 변수를 어떻게 만들 수 있습니까? 예를 들어, 위는 다음과 같습니다.

echo $firstletter
t

또는:

echo $firstletter
T



답변

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

문제 설명에서 “처음”이라고 말할 때마다 head가능한 해결책이 될 수 있습니다.


답변

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


답변

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


답변

이를위한 이식 가능한 방법은 매개 변수 확장 (POSIX 기능)을 사용하는 것입니다 .

$ word='tiger'
$ echo "${word%"${word#?}"}"
t


답변

컷 포함 :

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


답변

sed여기 에 태그가 있으므로 sed답이 있습니다.

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

그것을 즐기는 사람들을 위해 플레이 바이 플레이

{

  • s: 대체 루틴 시작
    • /: 대체 할 항목 지정 시작
    • ^\(.\): 그룹 1의 첫 번째 캐릭터 캡처
    • .*:, 나머지 줄이 대체에 있는지 확인하십시오.
    • /: 대체 지정 시작
    • \1: 그룹 1 삽입
    • /: 나머지는 버립니다.;
  • q: sed이 블록이있는 경우 다른 행에 대해이 블록을 반복하지 않도록 종료 합니다.

}

재미 있었어요! :)당신은 또한 사용할 수있는 grep등하지만 당신이 있다면 마술 (magick) 여전히 IMO 더 나은 솔루션입니다. (나는 POSIX 변수 확장을 사용하려고 한 시간을 보냈지 만 할 수 없었습니다 )bash${x:0:1}:(


답변

Bash 4 사용 :

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