行発生数の並べ替えと計算

行発生数の並べ替えと計算

Apacheログファイルがありますaccess.log。ファイル内の行数をどのように計算できますか?たとえば、結果cut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]'は次のようになります。

a.php
b.php
a.php
c.php
d.php
b.php
a.php

私が望む結果は次のとおりです。

3 a.php
2 b.php
1 d.php # order doesn't matter
1 c.php 

ベストアンサー1

| sort | uniq -c

コメントで述べたように。

パイプを介してsort出力をアルファベット/数字順に設定します。

uniqこれは重複行のみが一致するため、要件です。つまり、

a
b
a

このテキストファイルに使用すると、uniq次のものが返されます。

a
b
a

これは、2つのasが-で区切られ、b連続した行ではないためです。ただし、最初にデータをアルファベット順に並べると、次のようになります。

a
a
b

これにより、uniq重複行が削除されます。オプションは重複数を-c計算し、次の形式の出力を提供します。uniq

2 a
1 b

引用:

おすすめ記事