conf t

インフラエンジニアのメモ

URLから正規表現で拡張子を抽出する

アクセスログから、拡張子ごとのアクセス数を取りたかったので 正規表現を使って集計しました。

以下のようなURLがあります。

# cat url.txt
http://aaa/bbb.html?huigina
http://aaa.bbb.ccc/ddd.html?huigina
http://aaa.bbb.ccc/ddd/ddd.html?huigina
http://aaa/
http://aaa.bbb.ccc/ddd.html%Ahuigina
http://aaa/%3A4B6C

 

以下コマンドで拡張子のみ取り出します。拡張子がないものはスラッシュだけ残します。

# cat url.txt | sed -E 's/^(http|https):\/\/.*\/.+?(\..*)[^a-zA-Z0-9].*$/\2/g'| sed -E 's/^(http|https):\/\/.*(\/)[^.]*$/\2/g'
.html
.html
.html
/
.html
/

 

あとはsortとuniqで集計します。

# cat url.txt | sed -E 's/^(http|https):\/\/.*\/.+?(\..*)[^a-zA-Z0-9].*$/\2/g'| sed -E 's/^(http|https):\/\/.*(\/)[^.]*$/\2/g'|sort | uniq -c|sort -k 1 -nr
      4 .html
      2 /

 

URL加工に関連する記事: monaski.hatenablog.com