[解決済み] Bashスクリプト:ファイルのユニークな行を数える
2022-04-26 18:24:02
質問
シチュエーション
数時間のネットワークキャプチャからIPアドレスとポートを含む大きなファイル(数百万行)があり、1行に1つのIP/ポートが含まれています。 行はこのような形式です。
ip.ad.dre.ss[:port]
希望する結果
ログを取りながら受信したパケットごとにエントリーがあるので、アドレスが重複しているものがたくさんあります。 これをある種のシェルスクリプトに通して、次のような形式の行に減らすことができればと思います。
ip.ad.dre.ss[:port] count
ここで
count
は、その特定のアドレス(およびポート)の出現回数です。 特別な作業は必要なく、異なるポートを異なるアドレスとして扱います。
今のところ、このコマンドでログファイルからすべてのipアドレスをかき集めています。
grep -o -E [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(:[0-9]+)? ip_traffic-1.log > ips.txt
そこから、かなり簡単な正規表現を使って、私のアドレスから送信されたすべてのIPアドレスをかき出すことができます(私は気にしませんが)。
次に、以下を使用してユニークなエントリを抽出することができます。
sort -u ips.txt > intermediate.txt
行数をなんとかsortで集計したいのですが、どうすればいいのかわかりません。
どのように解決するのですか?
を使用することができます。
uniq
コマンドを使用すると、ソートされた繰り返し行の数を得ることができます。
sort ips.txt | uniq -c
最も頻度の高い結果をトップに表示するように(Peter Jaricに感謝)。
sort ips.txt | uniq -c | sort -bgr
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ZIPエラー - 何もできない
-
[解決済み] MacOSのbashターミナルでexport PS1="\u[\033[m]@[\033[32m]\h:\[\033[33;1m]\w[\033[m]\$" は何を意味していますか?
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] Bashでの動的な変数名
-
[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー
-
[解決済み] Bashで最新のディレクトリを変数に取得する
-
解決策:bash: /root/.bashrc: パーミッションが拒否されました
-
[解決済み] シェルスクリプトで整数式が期待されるエラー
-
[解決済み] Bashのforeachループ