コマンド履歴からプログラムを抽出する

LinuxBeginner
オンラインで実践に進む

はじめに

小さな履歴エクスポートには、パイプ(|)で区切られた各行に、履歴番号とプログラム名が記録されています。分析担当者が後のレポートに必要としているのは、program フィールドだけです。

このチャレンジでは、パイプライン実験で学んだフィールド抽出と、ストリーム実験で学んだファイルリダイレクトを、1 つの単純なファイルに適用します。

program フィールドを抽出する

現在の状況

/home/labex/project/history-analysis/command-history.txt には 5 件のレコードが含まれています。各行では、フィールド 1 に履歴番号、フィールド 2 にプログラム名があり、両者は | で区切られています。

作業範囲

  • すべてのレコードからフィールド 2 を抽出します。
  • 元のレコード順序と、同じ名前が繰り返し登場することを維持します。
  • 結果を programs.txt として保存します。

目標

5 つのプログラム名を 1 行に 1 つずつ含むファイルを作成します。

合格条件

  • programs.txt には、元の各レコードに対応するフィールド 2 の値が 1 つずつ、合計 5 つ含まれています。
  • 履歴番号と区切り文字は含まれていません。
  • 元の順序と、重複する ls のエントリが維持されています。

ヒント

どのフィールド抽出ツールを使いますか?

パイプライン実験では、指定した区切り文字とフィールド番号を使って cut を実行しました。そのコマンドの標準出力を、必要なファイルへリダイレクトします。

まとめ

区切り文字で区切られたフィールドを 1 つ抽出し、標準出力のリダイレクトを使って保存しました。

✨ 解答を確認して練習