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

【疑問】ログの最後だけ見たい、増えていくのを追いかけたい。cat・head・tail・less・nl・wc【LPICレベル1】

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

でかいログを cat したら画面が流れて何も読めん
最後の方だけとか、増えるのを見続けるとかしたい

2: 名無しさん

前提のおさらい。パイプ | は前のコマンドの標準出力を次のコマンドの標準入力に渡し、< はファイルを標準入力にする

3: 名無しさん

>>1
tail が最後の10行。-n 20 で20行。-f でファイルに足されていくのを表示し続ける(Ctrl+C で終わり)

4: 名無しさん

>>3
tail -F は --follow=name --retry と同じで、ログがローテートされて別のファイルになっても名前で追い直す

5: 名無しさん

>>3
tail -n +11 は「11行目から最後まで」。+ を付けると最初から数える

6: 名無しさん

>>1
最初の方は head で先頭10行。-n 3 で3行、-n -10 で「最後の10行を除いた全部」、-c 5 で5バイト

7: 名無しさん

>>1
じっくり読むなら less。スペースで次の画面、b で前、/文字列 で検索、n で次、g と G で先頭と末尾、q で終わり

8: 名無しさん

cat はつなげる以外にオプションある?

9: 名無しさん

>>8
-n 全部の行に番号、-b 空でない行だけに番号、-s 続いた空行を1つに、-A 見えない文字(行末は $、タブは ^I)を見せる

10: 名無しさん

>>9
nl も行番号を付けるけど、既定では空行に番号を付けへんかった
alpha・空行・beta・gamma のファイルで nl → alpha が1、beta が2、gamma が3。空行は番号なし
nl -b a にすると空行も2番になった

11: 名無しさん

>>1
行数を数えるのは?

12: 名無しさん

>>11
wc。出力は「行数 単語数 バイト数 ファイル名」の順
wc t.txt → 4 3 18 t.txt
-l 行数、-w 単語数、-c バイト数、-m 文字数

13: 名無しさん

>>12
-c と -m は違うん?

14: 名無しさん

>>13
日本語で差が出る。UTF-8 のロケールで「あい」と改行を数えたら、-m は3文字、-c は7バイト(ひらがなは1文字3バイト)。ロケールが C やと文字とバイトが同じ扱いになる

15: 名無しさん

>>12
wc -l < ファイル にするとファイル名が付かず数字だけになる。スクリプトで変数に入れるときに便利

16: 名無しさん

>>3
tail -f で追いかけて、less でじっくり、wc -l で数える。ログ見るときはこれでええな

管理人のひとこと