GNU/Linux >> Linux の 問題 >  >> Linux

Awkとパターンを一致させるレコードを数えますか?

だから私はlast > lastloggedinをするように言われました これにより、最後のシステム再起動以降のクラスの最後のログインを示すファイルが作成され、myawkという名前のAwkスクリプトを作成するように求められます。 lastloggedinの行数をカウント/決定します 文字列CFS264が含まれています 。

grep -c CFS264 lastloggedinを実行しました

承認された回答:

開始するには、awkを使用できます 次のような文字列を含むファイル内の行を検索するには:

$ awk '/CFS264/ { .... }' lastloggedin

{ .... }のビット その文字列の行数を集計するために必要なコマンドになります。上記が機能していることを確認するには、print $0を使用できます。 そこに検索文字列を含む行を印刷するだけです。

$ awk '/CFS264/ { print $0 }' lastloggedin

カウントに関しては、「awkカウンター」を検索すると、「awkを使用してレコード数をカウントしない」というタイトルのこのSO Q&Aに出くわします。そこに示されている方法は、あなたが説明するものには十分です:

$ awk '/CFS264/ {count++} END{print count}' lastloggedin

$ last > lastloggedin

$ awk '/slm/ {count++} END {print count}' lastloggedin 
758

$ grep slm lastloggedin  | wc -l
758

$ grep -c slm lastloggedin
758

注: lastでCFS264がどのフィールドに関係するかはわかりません 出力。それがユーザー名であると仮定すると、awkをさらに制限できます。 そのようなフィールドのみを検索するコマンド:

$ awk '$1=="CFS264" { print $0 }' lastloggedin

Linux
  1. パターンに一致する行を別のファイルの行に順番に置き換えますか?

  2. AwkまたはGrepでグループをキャプチャしますか?

  3. 5つの実用的な例で説明されたAWK配列

  1. awk を使用して変更を適所に保存する

  2. ワイルドカード ファイル パターンを指定した tar -C

  3. スペースを含む AWK およびファイル名。

  1. 強力なテキスト解析ツールであるawkの使用を開始する

  2. AWK で行 (行) を減算する方法

  3. 特定のパターンに一致するファイルを見つけ、そのファイル名をシェル スクリプトの変数に値として指定しますか?