POSIXによると、ODユーティリティは各バイトを区切るためにどの文字を使用しますか?

POSIXによると、ODユーティリティは各バイトを区切るためにどの文字を使用しますか?

Termuxを例にすると、次のような結果が得られます。

$ od -A n -t x1 /dev/urandom | head -n 2
 e3 5d bf 57 fb 8b 63 06 4a 18 fe 28 73 8f 3e c0
 9f 08 6b d4 2d 38 2c 68 3c 51 83 1e 71 7b 57 2b

ご覧のとおり、値は空白文字で区切られています。

SUSv2は次のように言いました。

入力データはチャンクで操作されます…各入力ブロックは、指定された順序で各出力タイプの変換を使用して、書き込みラインごとに1つずつ書き込まれます。入力ブロックサイズが出力タイプ変換のバイト数より大きい場合...各変換の出力は1つ以上の空白文字で区切られます。

上記の引用で、不要な部分を「...」に置き換えました。 2004年そして2018POSIXバージョンは上記と同じです。

仕様は、[:blank:]スペースとLFの代わりにタブ、「\f」、「\r」、およびBREの他のすべての項目を使用して各バイト、単語などを区別できることを意味しますか?

PS。実際、私はPOSIXism内ですべてのバイトをすべての行に含める最も効率的で迅速な方法を考えています。最初はod -A n -t x1 -v | tr ABCDEF abcdef | tr -Cd abcdef0123456789\\n | fold -w 2 | grep .似たような方が良いと思いました。それから上記のようにPOSIX仕様に問題がある内容があることを発見しました。また、素数はどうですか?方法ですが、使用しません...od -A n -t u1 -v | tr -Cs 0123456789- '[\n*]' | grep .だからどうですか?tr -Cより速くなりますか?それが目的です。

ベストアンサー1

研究が足りなくてすみません。しかし、私はこれを見つけました。

POSIX ロケールでは、空白文字はタブまたは空白文字です。

源泉。https://pubs.opengroup.org/onlinepubs/007908799/xbd/glossary.html#tag_004_000_031

したがって、 'とタブだけが区切り記号です(POSIXロケールの場合、この時点では他のロケールは気にしません)。空白文字で間違えてすみません。

おすすめ記事