LoginSignup
197

More than 5 years have passed since last update.

Organization

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

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

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

これだけです。

解説

  • a は連想配列の変数で名前は何でもいいです
  • $0 には行全体が格納されています
  • つまり各行をキーとする連想配列を作成し、同じ行が現れるたびに値をインクリメントします
  • ! により値が 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
What you can do with signing up
197