だから私はlast > lastloggedin最後のシステム再起動以降のクラスの最後のログインを示すファイルを作成するように言われました、そして今私は文字列myawkをlastloggedin含む行数を数える/決定する という名前のAwkスクリプトを書くように求められますCFS264。
終わったよ grep -c CFS264 lastloggedin
grep -c (something) (something) | wc -lう、常に "1"を生成。
だから私はlast > lastloggedin最後のシステム再起動以降のクラスの最後のログインを示すファイルを作成するように言われました、そして今私は文字列myawkをlastloggedin含む行数を数える/決定する という名前のAwkスクリプトを書くように求められますCFS264。
終わったよ grep -c CFS264 lastloggedin
grep -c (something) (something) | wc -lう、常に "1"を生成。
回答:
はじめに、次のawkような文字列を含むファイル内の行を検索するために使用できます。
$ awk '/CFS264/ { .... }' lastloggedin
のビットは、{ .... }その文字列で行数を集計するために必要なコマンドになります。上記が機能していることを確認するにはprint $0、そこでa を使用して、検索文字列を含む行を出力するだけです。
$ awk '/CFS264/ { print $0 }' lastloggedin
あなたは「awkのカウンタ」を検索した場合、カウントに、あなたは題したこのSO Q&Aつまずくます:レコードの何をカウントするのawkを使用していません。ここに示されている方法は、あなたが説明することには十分です。
$ 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
注: CFS264が関連するフィールドはlast出力に含まれていません。それがユーザー名であると仮定すると、awk次のようにそのフィールドのみを検索するようにコマンドをさらに制限できます。
$ awk '$1=="CFS264" { print $0 }' lastloggedin
awkます。
次の例では、lastloggedinファイルを必要とせずに言及された回数をカウントしています。
$ last | awk '$1=="yeti" { ++count } END { print count }'
106
このlastloggedinファイルの使用を強制したり、強制的に使用したりする場合は、次の方法で行うことができます。
$ last > lastloggedin
$ awk '$1=="yeti" { ++count } END { print count }' lastloggedin
106
$1~/some_chars/指定された文字を含むすべてのユーザー名を取得するか$1~/^prefix/、次で始まる名前のみに一致させるために使用しますprefix。
$ last | awk '$1~/et/ { ++count } END { print count }'
106
$ last | awk '$1~/^ye/ { ++count } END { print count }'
106
man awkさらにヒントをスキャン... ;-)
awk 非常にやりがいがあります。非常に短い時間で多くのことができるようになります...
awkか?そうでない場合は、を使用できますgrep -c CFS264 lastloggedin | wc -l。