2017-09-20 2 views
0

私は、一連のURLのために自分のnginxログを解析し、正規表現する必要があります。例えば、私はオンラインで見つけるいくつかのリンクから、このawkコマンドが25ので最も人気のあるURLを見つける:

cat access.log | awk '{ print $7 }' | sort | uniq -c | sort -rn | head -n 25 

をこの行は、特定のパターンで最も要求されたURLを見つける:

awk -F\" '($2 ~ "ref"){print $2}' access.log | awk '{print $2}' | sort | uniq -c | sort -r 

何Iこれらの両方を組み合わせて、正規表現パターンのURLの先頭にあるxというURLを見つけ出す必要があります。たとえば、URLに「cupcake」という最も人気のあるURLを見つけたい場合、これをどうやって行うのですか?さらに、$の変数の意味を理解するのに苦労しています。 $2または$7の変数は何を参照していますか?私がそれを見分けることができれば、私は自分の道にいると思う。正しい方向へのプッシュは役に立ちます。ありがとう。

+0

awk '{print $ 7}'はawkがファイルの7番目の列を出力することを意味します。これはawkの非常に基本的なものです。 '$ 1'、' $ 2' ....と '$ 0'について少し読んでください。 「FS」「OFS」「NF」「NR」のような組み込み変数 –

答えて

0

awkは入力行を列に分割し、各列の値は$ xで参照できます。

関連する問題