объединить два файла, первая строка из первого файла, за которой следует первая строка из второго файла [дубликат]

"Шестнадцатеричное" значение 0x0900 , которое вы написали, является в точности значением кодовой точки UNICODE, которая также находится в шестнадцатеричном формате.

шестнадцатеричный код 0900 (вместо अ)

Я считаю, что вы имеете в виду шестнадцатеричный код UNICODE: U0905 .

Персонаж в U-0900 не тот, который вы использовали: .
Этот символ - U0905 , часть этой страницы Unicode или перечисленный на этой странице .

В bash (установлен по умолчанию в Ubuntu) или непосредственно с программой по адресу: / usr / bin / printf (но не с sh printf ), символ Unicode может быть создан с помощью:

$ printf '\u0905'
अ
$ /usr/bin/printf '\u0905'
अ

Однако этот символ, который происходит из номера кодовой точки, может быть представлен несколькими потоками байтов в зависимости от того, какая кодовая страница используется.
Должно быть очевидно, что \ U0905 - это 0x09 0x05 в UTF-16 (UCS-2 и т. Д.)
и 0x00 0x00 0x09 0x05 в UTF-32.
Это может быть неочевидно, но в utf-8 это представлено как 0xe0 0xa4 0x85 :

$ /usr/bin/printf '\u0905' | od -vAn -tx1
e0 a4 85

Если локаль вашей консоли похожа на en_US. UTF-8 .

И я говорю о оболочке, потому что она преобразует строку в то, что получает приложение. Это:

grep "$(printf '\u0905')" file

заставляет grep «видеть» нужный вам символ.
Чтобы понять строку выше, вы можете использовать echo:

$ echo grep "$(printf '\u0905')" file
grep अ file

Затем мы можем построить диапазон символов по вашему запросу:

$ echo grep "$(printf '[\u0905-\u097f]')" file
grep [अ-ॿ] file

Это ответ на ваш вопрос:

Как я могу использовать шестнадцатеричный код вместо अ и व?

8
11.01.2017, 00:03
0 ответов

Теги

Похожие вопросы