알파벳 ASCII 값을 가져오는 Bash 스크립트

알파벳 ASCII 값을 가져오는 Bash 스크립트

알파벳의 ASCII 값을 얻는 방법은 무엇입니까?

97예를 들어 , a?

답변1

다음 두 가지 함수를 정의하세요(종종 다른 언어에서도 사용 가능).

chr() {
  [ "$1" -lt 256 ] || return 1
  printf "\\$(printf '%03o' "$1")"
}

ord() {
  LC_CTYPE=C printf '%d' "'$1"
}

용법:

chr 65
A

ord A
65

답변2

다음을 통해 전체 컬렉션을 볼 수 있습니다.

$ man ascii

8진수, 16진수, 10진수에 대한 표를 얻을 수 있습니다.

답변3

이것은 아주 잘 작동합니다.

echo "A" | tr -d "\n" | od -An -t uC

echo "A"                              ### Emit a character.
         | tr -d "\n"                 ### Remove the "newline" character.
                      | od -An -t uC  ### Use od (octal dump) to print:
                                      ### -An  means Address none
                                      ### -t  select a type
                                      ###  u  type is unsigned decimal.
                                      ###  C  of size (one) char.

다음과 정확히 동일합니다.

echo -n "A" | od -An -tuC        ### Not all shells honor the '-n'.

답변4

나는 간단하고 우아한 Bash 솔루션을 원합니다.

for i in {a..z}; do echo $(printf "%s %d" "$i" "'$i"); done

스크립트에서 다음을 사용할 수 있습니다.

CharValue="A"
AscValue=`printf "%d" "'$CharValue"

CharValue 앞의 작은따옴표에 유의하세요. 그것은 의무적입니다 ...

관련 정보