Использование hexdump для репликации команды xxd
На моей текущей рабочей станции у меня есть только hexdump
и мне не разрешено устанавливать другие пакеты, такие как xxd
, Поэтому мне нужно перевести эту команду xxd в эквивалент hexdump
echo "my home is very good 002_" | xxd -p -c 256
#Output: 6d7920686f6d65206973207665727920676f6f64203030325f0a
echo "my home is very good 002_" | hexdump -e '256 1 "%x"'
#Output: 6d7920686f6d65206973207665727920676f6f64203030325fa
Как видите, в конце вывода есть дополнительный "0", что означает, что мое решение не работает.
Не могли бы вы мне помочь?
1 ответ
Попробуйте использовать %02x
как спецификатор формата для hexdump. Один байт не будет иметь нулевой префикс, если вы не укажете это. К сожалению, это начнёт дополнять ваши строки, если вы не удалите их.
Например:
echo "" | hexdump -e '256 1 "%02x"'
#Output: 0a[followed by a significant amount of whitespace]
Чтобы точно соответствовать поведению, вы можете комбинировать hexdump с fold
:
echo "" | hexdump -e '"%02x"' | fold -b -w512