od
В действительности нет такой вещи как значение ASCII строки. есть такая вещь, как десятичное (или восьмеричное, или шестнадцатеричное) значение каждого символа ASCII в строке.
Поскольку у вас, похоже, нет hexdump, попробуйте утилиту od
(восьмеричный дамп).Я не думаю, что когда-либо видел систему * nix, в которой не было od
.
$ echo "Onkar123#" | od -An -t d1
79 110 107 97 114 49 50 51 35 10
Полагаю, что в игру может вступить порядок байтов.Но od
имеет аргумент --endian
для этого.
awk
Это намного сложнее в awk.Я думаю, что вы должны создать таблицу поиска, а затем искать десятичный код для каждого символа на входе.Это означает, что вам все равно придется обрабатывать один символ за раз.
# output-decimal-ascii.awk -- write ASCII decimal codes for input
BEGIN {
# 127 for ASCII; 256 for extended ASCII
for(n = 0; n < 127; n++) {
ascii_table[sprintf("%c",n)] = n
}
}
{
split($0, arr, "")
for (i = 1; i <= length(arr); i++) {
printf("%d ", ascii_table[arr[i]])
}
print "\n"
}
$ echo "Onkar123#" | awk -f code/awk/output-decimal-ascii.awk
79 110 107 97 114 49 50 51 35