読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】ファイルに見えない文字が入ってるっぽい。od・split・zcat と md5sum・sha256sum【LPICレベル1】

17レスカテゴリ:Linux
1: 名無しさん

設定ファイルにタブか空白か分からん文字が入ってて、うまく読まれへん
中身を1バイトずつ見る方法ある?

2: 名無しさん

前提のおさらい。cat・head・tail・wc はテキストを表示したり数えたりする。cat -A でもタブは ^I、行末は $ として見える

3: 名無しさん

>>1
od でダンプする。「AB、タブ、c、改行」の5バイトのファイルで試した
od -c → A B \t c \n
od -t x1 → 41 42 09 63 0a(1バイトずつ16進)

4: 名無しさん

>>3
オプションなしの od は何が出るん?

5: 名無しさん

>>4
2バイトずつの8進数。041101 061411 000012 になった。-x は2バイトずつの16進で 4241 6309 000a。x86 は下位のバイトが先に来るから、AB が 4241 と逆に見える

6: 名無しさん

>>5
左の列はファイルの先頭からの位置で、既定は8進数。-A x で16進、-A n で表示しない

7: 名無しさん

大きいファイルを分けたいときは?

8: 名無しさん

>>7
split。既定では1000行ずつ、名前は xaa、xab、xac…
2500行のファイルを split → xaa 1000行、xab 1000行、xac 500行
-l 1000 行数、-b 4k バイト数、-d で番号の名前(part_00 など)

9: 名無しさん

>>8
戻すのは cat xa* > 元の名前。cmp で比べたら同じやった

10: 名無しさん

>>1
圧縮されたログを、展開せずに読むのは?

11: 名無しさん

>>10
zcat(.gz)、bzcat(.bz2)、xzcat(.xz)。展開した中身を標準出力に出すだけで、ファイルはそのまま
zcat big.gz | wc -l → 2500

12: 名無しさん

>>11
grep したいなら zcat access.log.1.gz | grep 404 みたいにパイプでつなぐ

13: 名無しさん

>>1
チェックサムは?

14: 名無しさん

>>13
ファイルの中身から決まる値で、1バイトでも変わると全く別の値になる。md5sum(16進で32桁)、sha256sum(64桁)、sha512sum(128桁)

15: 名無しさん

>>14
確かめるのは -c
sha256sum big > big.sha256 で保存
sha256sum -c big.sha256 → big: OK
1行足してからもう一度 → big: FAILED と警告、終了ステータス1

16: 名無しさん

>>14
ダウンロードしたイメージの確認とかでも使うやつやな

17: 名無しさん

>>3
見えない文字は od -c、分けるのは split、圧縮のまま読むのは zcat、壊れてないかは sha256sum -c。道具の名前と用途で覚えるわ

管理人のひとこと