本文へスキップ
BecomeCoder

Linuxコマンドコース · 第5章 テキスト処理の実践 · レッスン29

Linuxコマンドのまとめ ― ワンライナーを組み立てる

ブラウザで完結

導入

最後は、これまでの部品を1本のコマンド(ワンライナー)に組み上げます。パイプは「左から右へデータを加工していく組み立てライン」。頭の中で工程を並べれば、複雑そうな集計も自然に書けます。

説明

ワンライナーは、いきなり全部書こうとせず左から一段ずつ足して確かめるのがコツです。たとえばアクセスログのステータス集計をレポート化する流れは、こう育てます。

  1. まず列を取り出す:cut -d " " -f 4 logs/access.log
  2. 並べて数える:... | sort | uniq -c
  3. 多い順にする:... | sort -rn
  4. ファイルに残す:... > report.txt

完成形がこれです。実行してから cat で結果を確認します。

cut -d " " -f 4 logs/access.log | sort | uniq -c | sort -rn > report.txt
cat report.txt

同じ発想で、「WARN と ERROR だけを抜いて件数を出す」も書けます。

grep -v INFO logs/app.log | wc -l

覚えておきたい“型”はこの2つです。応用の9割はこの組み合わせで足ります。

  • 集計の型cut ... | sort | uniq -c | sort -rn(列を取り出して多い順に数える)
  • 調査の型grep 条件 ファイル | wc -l(条件に合う件数を数える)

やってみよう

完成形をいきなり打つのではなく、cut -d " " -f 4 logs/access.log から始めて、| sort| uniq -c| sort -rn と一段ずつ足しながら出力の変化を観察しましょう。最後に > report.txt で保存し、cat report.txt で確認してください。

演習

logs/access.logステータスコード(4列目)ごとの件数を多い順に集計し、その結果を report.txt に保存してください。

ヒント1を見る

集計の型 cut ... | sort | uniq -c | sort -rn の最後に > report.txt を足します。

ヒント2を見る

cut -d " " -f 4 logs/access.log | sort | uniq -c | sort -rn > report.txt

ヒント3を見る

保存できたか cat report.txt で確かめましょう。

実際に動かしてみよう

下の端末にコマンドを打って Enter を押すと、その場で結果が返ります。本文で出てきたコマンドを実際に試しながら進めましょう(ファイルを消しても「最初からやり直す」で元に戻ります)。

Linux シェル(シミュレート)

ブラウザ内でコマンドを試せる仮想シェルを読み込みます(本物のLinuxカーネルではなく学習用の再現です)。
スクロールして表示された時点でも自動で読み込まれます。