сценарий, чтобы проанализировать целое число и преобразовать его в символьный код

Из man fstab:

Вместо того, чтобы дать устройство явно, можно указать (ext2). или xfs) файловая система, которая будет смонтирована по UUID или метке тома. (cf. e2label(8) или xfs_admin(8)), написание LABEL= или UUID=, например, 'LABEL=Boot' или 'UUID=3e6be9de-8139-11d1-9106- a43f08d823a6'. Это сделает систему более надежной: добавление или удаление Диск SCSI [или SATA] изменяет имя дискового устройства, но не метку тома файловой системы.

Что касается причины, по которой GRUB иногда не может загрузиться, я сомневаюсь, что установка UUID что-нибудь изменит (как кажется , она может не работать даже с UUID, учитывая некоторые странные настройки BIOS ), но все же стоит попробовать.

1
25.08.2018, 21:26
2 ответа

Perl хорош для этого:

$ str='I see that you#146;re eligible to get ticket for show on your device#44;'
$ perl -pe 's/#(\d+);/chr($1)/ge' <<<"$str"
I see that you’re eligible to get ticket for show on your device,

Мне пришлось установить кодировку моего терминала к Windows-1252, чтобы получить этот выход. Десятичная 146 не является действительным ISO-8859-1 символ.


Для лечения этих кодов как HTML-объекты мы добавим отсутствующее Ampersand и декодировать:

perl -MHTML::Entities -lne 's/(#\d+;)/&$1/g; print decode_entities($_)' <<<"$str"
1
27.01.2020, 23:51

В bash можно сделать:

$ str='I see that you#39;re eligible to get ticket for show on your device#44;'
$ re='#([0-9]*);'; while [[ $str =~ $re ]]; do b="${BASH_REMATCH[1]}"; c=$(printf "$(printf '\\U%x' "$b")"); str=${str//#$b;/$c}; done; echo "$a"
I see that you're eligible to get ticket for show on your device,
0
27.01.2020, 23:51

Теги

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