распечатать файл в шестнадцатеричном формате с помощью awk

У меня есть имя файла x

 $ cat x 1A34532112345 

Я хочу печатать в шестнадцатеричном формате, используя awk Я написал сценарий (с помощью веб-страницы)

 fold -1 /home/cscape/Desktop/x | gawk '{ printf("%s , %X\n",$0, int($0) )}' 

Но вывод для каждого символа равен 0

 $ fold -1 /home/cscape/Desktop/x | gawk '{ printf("%s , %X\n",$0, int($0) )}' 1 , 1 A , 0 3 , 3 4 , 4 5 , 5 3 , 3 2 , 2 1 , 1 1 , 1 2 , 2 3 , 3 4 , 4 5 , 5 

Почему 0 для A даже с %d . Я хочу напечатать ASCII значение A как HEX .

2 Solutions collect form web for “распечатать файл в шестнадцатеричном формате с помощью awk”

awk будет молча преобразовывать строки в числа. Какой номер? Число, которое вы получаете, беря начальные десятичные цифры строки (это может быть просто "" , если строка пуста или не начинается с каких-либо десятичных цифр, как в случае с "A" ) и преобразует их в номер. "" преобразуется в 0 . Таким образом, все они будут преобразованы в 0 :

  • "0"
  • "0text"
  • "текст"
  • «»

awk только преобразует строки в числа таким образом, когда требуется число. В "0text" + 1 требуется число, поэтому результат будет равен 1 . В простом "0text" число не требуется, поэтому никакого преобразования не происходит. В printf("%d", "0text") снова требуется число, поэтому строка будет преобразована в число.

То, что вы ищете, является функцией ord , которая не является нативной функцией в awk. Документация gawk описывает, как написать такую ​​функцию в awk.

Если вам не нужно использовать awk, вы можете посмотреть на od («восьмеричная дамп»):

 $ echo 1A34532112345 | od -t x1 0000000 31 41 33 34 35 33 32 31 31 32 33 34 35 0a 0000016 
  • печатать строки со специфическими словами
  • эхо-цикл с командой переменных
  • Ошибки с командой git alias shell
  • Возможно ли эхо в файл, но использовать отступы в источнике сценария оболочки?
  • Сохранение вывода stderr в переменной без модификации stdout и повторение этого действия
  • Как сделать снимок сайта через скрипт оболочки?
  • Как сделать необязательные аргументы, которые могут быть именами файлов, содержащими пробелы
  • * .desktop или symlink работает (только для этого одного файла) - Linux Mint 17.2 Cinnamon
  • разрешение bash отклонено, но sh works
  • как сделать цикл с тестом md5sum на сценарии bash?
  • Чтение столбцов из файла, затем столбец в exsisting CSV-файл
  • grep до соответствия скобкам
  • Linux и Unix - лучшая ОС в мире.