回答編集履歴

1

2015/02/20 05:20

投稿

cmu2008
cmu2008

スコア93

test CHANGED
@@ -1,23 +1,12 @@
1
- **awk '!x[$0]++' file.txt**
1
+ awk '!x[$0]++' file.txt
2
-
3
-
4
2
 
5
3
  このコマンドを使ってください。
6
4
 
7
-
8
-
9
5
  xは連想配列で、Awkがそこにファイルの行すべてをパスします。
10
-
11
6
  ある行が配列に存在しなければ、x[$0]がfalseと評価します。
12
-
13
7
  !はロジカルなNOT演算子で、falseをtrueに逆転させます。
14
-
15
8
  Awkはその式がtrueと評価した行をプリントします。
16
-
17
9
  ++はxをインクリメントし、行が見つからなければx[$0] == 1、また見つからなければx[$0] == 2となっていきます。
18
10
 
19
-
20
-
21
11
  また、0と" "(空のstring)だけはtrueと評価されません。
22
-
23
12
  重複した行がxにある場合、!x[$0]がfalseと評価するためアウトプットには書かれません。