16進行をバイナリに変換しようとしていますが、bash
出力にバックスラッシュが含まれています。誰かが理由を説明できますか?
入力する:
for i in 3D3D516343746D4D6D6C315669563362; do BIN=$(echo "ibase=16; obase=2; $i" | bc); echo $BIN; done
出力:
11110100111101010100010110001101000011011101000110110101001101011011\ 0101101100001100010101011001101001010101100011001101100010
ベストアンサー1
POSIX実装はbc
バックスラッシュを使用して出力行を最大70文字に分割します。行連続文字。
GNUバージョンがある場合は、bc
環境変数を使用してこの動作をオーバーライドできますBC_LINE_LENGTH
。
$ printf 'ibase=16; obase=2; %s\n' 3D3D516343746D4D6D6C315669563362 | BC_LINE_LENGTH=0 bc
111101001111010101000101100011010000110111010001101101010011010110110101101100001100010101011001101001010101100011001101100010
からinfo bc
:
'BC_LINE_LENGTH'
This should be an integer specifying the number of characters in an
output line for numbers. This includes the backslash and newline
characters for long numbers. As an extension, the value of zero
disables the multi-line feature. Any other value of this variable
that is less than 3 sets the line length to 70.