🗂[SadServers] 解説 "Saskatoon": counting IPs.2022/11/02に公開2023/01/043件LinuxSadServerstechDiscussionl1i1i1i12022/11/17cat /home/admin/access.log | cut -d' ' -f 1 | sort | uniq -c | sort これと cat /home/admin/access.log | cut -d' ' -f 1 | uniq -c | sort このコマンドの結果ってなんで異なるんですかね?後者だと次のような結果が返ってきます 41 199.168.96.66 41 50.139.66.106 42 130.237.218.86 49 130.237.218.86 49 75.97.9.59 50 75.97.9.59 85 130.237.218.86 89 130.237.218.86 97 75.97.9.59 返信を追加kenma2022/11/17uniq は 同じ行が連続している行の重複を取り除きます。 つまり、ソートしていないと、期待通り動きません。なので、 uniq の間に sort が必要です。 https://linuxjm.osdn.jp/html/GNU_textutils/man1/uniq.1.html uniq に与える入力はソートされていなければならない。比較は連続した行の間での み行われる。 例えば、text.txt が、次のように、 130.237.218.86 の間に 1.1.1.1が挟まれていると、 130.237.218.86 130.237.218.86 1.1.1.1 130.237.218.86 130.237.218.86 130.237.218.86 cat test.txt | uniq -c 2 130.237.218.86 1 1.1.1.1 3 130.237.218.86 のように、1.1.1.1で分断されているので、前半で130.237.218.86が2回。 後半で130.237.218.86が3回存在していると出力されます。 これを回避するために、予めsortします。 l1i1i1i12022/11/17なるほど!連続している場合に削除して数えているんですね!なるほどです,ありがとうございます! 返信を追加
l1i1i1i12022/11/17cat /home/admin/access.log | cut -d' ' -f 1 | sort | uniq -c | sort これと cat /home/admin/access.log | cut -d' ' -f 1 | uniq -c | sort このコマンドの結果ってなんで異なるんですかね?後者だと次のような結果が返ってきます 41 199.168.96.66 41 50.139.66.106 42 130.237.218.86 49 130.237.218.86 49 75.97.9.59 50 75.97.9.59 85 130.237.218.86 89 130.237.218.86 97 75.97.9.59 返信を追加
kenma2022/11/17uniq は 同じ行が連続している行の重複を取り除きます。 つまり、ソートしていないと、期待通り動きません。なので、 uniq の間に sort が必要です。 https://linuxjm.osdn.jp/html/GNU_textutils/man1/uniq.1.html uniq に与える入力はソートされていなければならない。比較は連続した行の間での み行われる。 例えば、text.txt が、次のように、 130.237.218.86 の間に 1.1.1.1が挟まれていると、 130.237.218.86 130.237.218.86 1.1.1.1 130.237.218.86 130.237.218.86 130.237.218.86 cat test.txt | uniq -c 2 130.237.218.86 1 1.1.1.1 3 130.237.218.86 のように、1.1.1.1で分断されているので、前半で130.237.218.86が2回。 後半で130.237.218.86が3回存在していると出力されます。 これを回避するために、予めsortします。 l1i1i1i12022/11/17なるほど!連続している場合に削除して数えているんですね!なるほどです,ありがとうございます! 返信を追加
Discussion
これと
このコマンドの結果ってなんで異なるんですかね?後者だと次のような結果が返ってきます
uniqは 同じ行が連続している行の重複を取り除きます。 つまり、ソートしていないと、期待通り動きません。なので、uniqの間にsortが必要です。例えば、text.txt が、次のように、
130.237.218.86の間に1.1.1.1が挟まれていると、のように、
1.1.1.1で分断されているので、前半で130.237.218.86が2回。 後半で130.237.218.86が3回存在していると出力されます。これを回避するために、予め
sortします。なるほど!連続している場合に削除して数えているんですね!なるほどです,ありがとうございます!