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

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

はじめに

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

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

プログラム名フィールドを抽出する

現在の状況

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

作業範囲

  • すべてのレコードからフィールド 2 を抽出する。
  • 元のレコード順序と重複する名前を維持する。
  • 結果を programs.txt として保存する。

目標

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

合格基準

  • programs.txt に、元の各レコードに対応するフィールド 2 の値が正確に 1 つずつ含まれている。
  • 履歴番号と区切り文字が含まれていない。
  • 元の順序と、重複している ls の項目が保持されている。

ヒント

どのフィールド操作ツールを使えばよいですか?

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

まとめ

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

✨ 解答を確認して練習