$ echo -en 'a\x00b' | hexdump -C
00000000  61 00 62                                          |a.b|
$ printf 'a\x00b' | hexdump -C
00000000  61 00 62                                          |a.b|

hex 指定の '\x00' のかわりに digit 指定の '¥0' も可能。

echo-e はバックスラッシュのエスケープを有効にする。 同様に'\t' などもつかえる。
echo-n は改行を抑制する。

echo と printf の違い

echoprintf の違いは次の URL を参照

Difference between printf and echo in bash

bash で NULL 文字を含んだ文字列を変数に代入したい

結論から言えば bash ではできないみたい。
echo などでファイルにリダイレクトして、そのファイルを読み込んで処理するといった回避が必要。

頑張れば以下のように xxd 経由でヘックスダンプにエンコード/デコードすることもできるみたいだけど、ちょっと違うかな。

$ VAR1=`echo -ne "a\0b" | xxd -p | tr -d '\n'`
$ echo -ne "$VAR1" | xxd -r -p | hexdump  -C
00000000  61 00 62                                          |a.b|

参考:assign string containing null-character () to a variable in bash

Tagged with: ,
Posted in linux

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners.… /cc @inwyrd 6 months ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 6 months ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 6 months ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 1 year ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book:… It's about managing produc… 1 year ago
%d bloggers like this: