19

Web ログから一意の URL を取得し、並べ替える必要があります。grep、uniq、sortコマンドを使用して、これを別のファイルに出力することを考えていました

このコマンドを実行しました:

cat access.log | awk '{print $7}' > url.txt

次に、一意のもののみを取得して並べ替えます。

cat url.txt | uniq | sort > urls.txt

問題は、ファイルがソートされているにもかかわらず、重複が表示されることです。これは、コマンドが機能したことを意味します。なんで?

4

4 に答える 4

26

uniq | sort機能しません:uniq連続した重複を削除します。

正しい方法はsort | uniq以上ですsort -u。生成されるプロセスは 1 つだけだからです。

于 2011-11-17T16:08:09.290 に答える
5

uniq は入力をソートする必要がありますが、uniq の後にソートしました。試す:

$ sort -u < url.txt > urls.txt
于 2011-11-17T16:08:30.727 に答える
3

次のようなことを試してください:

cat url.txt | sort | uniq
于 2011-11-17T16:10:18.477 に答える