でかいログを cat したら画面が流れて何も読めん
最後の方だけとか、増えるのを見続けるとかしたい
【疑問】ログの最後だけ見たい、増えていくのを追いかけたい。cat・head・tail・less・nl・wc【LPICレベル1】
前提のおさらい。パイプ | は前のコマンドの標準出力を次のコマンドの標準入力に渡し、< はファイルを標準入力にする
>>1tail が最後の10行。-n 20 で20行。-f でファイルに足されていくのを表示し続ける(Ctrl+C で終わり)
>>3tail -F は --follow=name --retry と同じで、ログがローテートされて別のファイルになっても名前で追い直す
>>3tail -n +11 は「11行目から最後まで」。+ を付けると最初から数える
>>1
最初の方は head で先頭10行。-n 3 で3行、-n -10 で「最後の10行を除いた全部」、-c 5 で5バイト
>>1
じっくり読むなら less。スペースで次の画面、b で前、/文字列 で検索、n で次、g と G で先頭と末尾、q で終わり
cat はつなげる以外にオプションある?
>>8-n 全部の行に番号、-b 空でない行だけに番号、-s 続いた空行を1つに、-A 見えない文字(行末は $、タブは ^I)を見せる
>>9nl も行番号を付けるけど、既定では空行に番号を付けへんかった
alpha・空行・beta・gamma のファイルで nl → alpha が1、beta が2、gamma が3。空行は番号なしnl -b a にすると空行も2番になった
>>1
行数を数えるのは?
>>11wc。出力は「行数 単語数 バイト数 ファイル名」の順wc t.txt → 4 3 18 t.txt-l 行数、-w 単語数、-c バイト数、-m 文字数
>>12-c と -m は違うん?
>>13
日本語で差が出る。UTF-8 のロケールで「あい」と改行を数えたら、-m は3文字、-c は7バイト(ひらがなは1文字3バイト)。ロケールが C やと文字とバイトが同じ扱いになる
>>12wc -l < ファイル にするとファイル名が付かず数字だけになる。スクリプトで変数に入れるときに便利
>>3
tail -f で追いかけて、less でじっくり、wc -l で数える。ログ見るときはこれでええな
管理人のひとこと
- tail は末尾10行(
-nで行数、-n +Nで N 行目から)、-fで追加を追い続け、-Fは名前で追い直す。head は先頭10行(-n -Nで末尾 N 行を除く、-cでバイト)。 - less はスペースで次、b で前、/ で検索、n で次、g・G で先頭・末尾、q で終了。
- cat
-n全行に番号、-b空でない行だけ、-s空行をまとめる、-A見えない文字を表示。nl は既定で空行に番号を付けない(-b aで全行)。 - wc は「行数 単語数 バイト数」の順。
-l・-w・-c・-m(文字数)。マルチバイトの文字では-cと-mが違う。