アクセスログから、拡張子ごとのアクセス数を取りたかったので 正規表現を使って集計しました。
以下のような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