LoginSignup
203
198

More than 5 years have passed since last update.

ソートしないで重複行を削除する

Posted at

uniq コマンドは事前にデータをソートしておく必要がありますが、ソートされていないデータから重複する行を削除したいこともありますよね。そんなときは

awk '!a[$0]++' FILE

これだけです。

解説

  • a は連想配列の変数で名前は何でもいいです
  • $0 には行全体が格納されています
  • つまり各行をキーとする連想配列を作成し、同じ行が現れるたびに値をインクリメントします
  • ! により値が 0 のとき、つまり最初にその行が現れたときだけ条件が真になります
  • アクション部分は省略されているので行全体が表示されます
203
198
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
203
198