grep ... global regular expression pattern (大域正規表現パターン)
パターンを含む行を取り出す。
正規表現(パターン)の基本
a | a という1文字 |
abc | abc という文字列 |
. | 任意の1文字 |
* | 直前のパターンの0回以上の繰り返し |
.* | 任意の文字列 |
^ | 行のはじめ |
^A | 行のはじめが A |
$ | 行の最後 |
ko$ | 行の最後が ko |
[ab] | a または b どちらか1文字 |
[0-9A-Za-z] | 英数字の1文字 |
[^0-9] | 数字以外の1文字 |
\ | 次の特殊文字をそのまま使う |
\[ | カギ括弧([)に一致 |
grep の使用例 (single quote ' でパターンを囲む必要があります)
% last | grep 02ss001 ... % last | grep 02ss ... % last | grep '0[12]ss' ... % last | grep -v shutdown ... % cd ~/coreinfo % grep '^A' friends Aya Atsuko Ayumi % grep '^A.*ko$' friends Atsuko |
awk ... Aho, Weinberger, Kernighan
パターンに一致したときアクションを行う。
アクションは { } で囲む(cshの特殊文字なのでエスケープが必要)
とりあえずアクション ... (もっと詳しくは昨年のレジュメ で)
印刷命令 | |
$1 | 1番目の列(colum) |
$NF | 最後の列 |
awk の利用
% last | awk '{ print $1 }' ... % last | awk '{ print $1 }' | sort ... % last | awk '{ print $1 }' | sort | uniq -c ... % last | awk '{ print $1 }' | sort | uniq -c | sort -n ... |
~/coreinfo ディレクトリで練習すること。
ウェブサーバへのアクセスはログに記録される。タイピング成績登録のログを ~tkikuchi/coreinfo/data/TX.log に置いてあるので、cp (コピー)コマンドを用いて、カレントディレクトリにコピーしなさい。(必要に応じてオンラインマニュアルを参照すること)
自分がアクセスした記録を grep によって取り出し、myaccess.log というファイルに入れなさい。
ログの形式では1番目のフィールドがホスト名、3番目のフィールドが認証ユーザ名となっている。ホスト名とユーザ名だけを表示しなさい。
ユーザ名を表示し、アクセス回数の多い10人とその回数を topten.log というファイルに入れなさい。
history コマンドの結果を hist6 というファイルに入れなさい。
<a href="http://www.is.kochi-u.ac.jp/~tkikuchi/>菊地のホームページ