O valor "hexadecimal" 0x0900
que você escreveu é exatamente o valor do ponto de código UNICODE que também está em hexadecimal.
hexadecimal code 0900 (instead of अ)
Acredito que o que você quer dizer é o ponto de código hexadecimal UNICODE: U0905
.
O caractere na U-0900 não é o que você usou: अ
.
Esse personagem é U0905 , parte de esta página Unicode , ou listado em esta página .
Em bash
(instalado por padrão no Ubuntu) ou diretamente com o programa em: /usr/bin/printf
(mas não com sh
printf), um caractere Unicode poderia ser produzido com:
$ printf '\u0905'
अ
$ /usr/bin/printf '\u0905'
अ
No entanto, esse caractere, que vem de um número de ponto de código, pode ser representado por vários fluxos de bytes, dependendo de qual página de código é usada.
Deve ser óbvio que \U0905
é 0x09 0x05
em UTF-16 (UCS-2, etc)
e 0x00 0x00 0x09 0x05
em UTF-32.
Pode não ser óbvio, mas no utf-8 é representado por 0xe0 0xa4 0x85
:
$ /usr/bin/printf '\u0905' | od -vAn -tx1
e0 a4 85
Se a localidade do seu console for algo semelhante a en_US.UTF-8
.
E eu estou falando sobre o shell, porque é o que transforma uma string em que o aplicativo recebe. Isso:
grep "$(printf '\u0905')" file
faz grep "ver" o personagem que você precisa.
Para entender a linha acima, você pode usar o echo:
$ echo grep "$(printf '\u0905')" file
grep अ file
Em seguida, podemos criar um intervalo de caracteres, conforme você solicita:
$ echo grep "$(printf '[\u0905-\u097f]')" file
grep [अ-ॿ] file
Isso responde à sua pergunta:
How I can use hexadecimal code in place of अ and व?