Предполагая, что двоичным файлом, Вы имеете в виду двоичные данные как в данных с любым возможным значением байта включая 0 и не основываете 2 числа:
Преобразовать из двоичного файла, od
(стандарт), xxd
(идет vim
) или perl
unpack
прийти на ум.
od -An -vtu1 # for decimal
od -An -vtx1 # for hexadecimal
xxd -p # for hexa
perl -pe 'BEGIN{$\="\n";$/=\30};$_=unpack("H*",$_)' # like xxd -p
# for decimal:
perl -ne 'BEGIN{$\="\n";$/=\30;$,=" "}; print unpack("C*",$_)'
Теперь, для преобразования назад в двоичный файл, awk
(стандарт), xxd -r
или perl
pack
:
От десятичного вывода от od -tu1
или perl
выше:
LC_ALL=C awk '{for (i = 1; i <= NF; i++) printf "%c", $i}'
perl -ape '$_=pack("C*",@F)'
От hexa perl
или xxd -p
выше:
xxd -r -p
perl -pe 'chomp;$_=pack("H*",$_)'
В сценариях оболочки все является строкой. Вам и нужно указать *
, чтобы предотвратить расширение имени файла , но вы не хотите помещать escape-последовательность обратной косой черты в двойные кавычки.
Вы можете просто объединить строки, поместив их сразу после друг друга.
find . -name '*'$'\n''*'
Но для лучшей читаемости вы можете использовать кавычки ANSI-C для всей строки.
find . -name $'*\n*'