回答編集履歴
3
回答追加
answer
CHANGED
@@ -13,6 +13,9 @@
|
|
13
13
|
wawa,zzz1
|
14
14
|
bac,vvv1
|
15
15
|
wawa,www1
|
16
|
+
```
|
17
|
+
|
18
|
+
```
|
16
19
|
$ cat sample.txt |awk -F, '!colname[$1]++{print $0}END{print "\nduplicate column 1";for (i in colname){if (colname[i]>1) print i":"colname[i];}}'
|
17
20
|
aaa,vvv1
|
18
21
|
wawa,www1
|
@@ -24,6 +27,21 @@
|
|
24
27
|
aaa:2
|
25
28
|
```
|
26
29
|
|
30
|
+
```
|
31
|
+
$ cat sample.txt |awk -F, '!colname[$2]++{print $0}END{print "\nduplicate column 2";for (i in colname){if (colname[i]>1) print i":"colname[i];}}'
|
32
|
+
aaa,vvv1
|
33
|
+
wawa,www1
|
34
|
+
bbb,xxx1
|
35
|
+
aaa,yyy1
|
36
|
+
wawa,zzz1
|
37
|
+
|
38
|
+
duplicate column 2
|
39
|
+
vvv1:2
|
40
|
+
www1:2
|
41
|
+
```
|
42
|
+
|
43
|
+
----
|
44
|
+
|
27
45
|
単に以下のようなtxtファイルから重複行を排除、重複した行の数を表示するなら
|
28
46
|
awkではなく`sort` `uniq`で可能です。
|
29
47
|
|
2
回答追加:awkでの処理を追加(入力ファイルの形式は想像で追加しています)
answer
CHANGED
@@ -1,6 +1,29 @@
|
|
1
1
|
質問からはcsvがどう関係するのかわからないです。
|
2
2
|
**質問へのコメントを記載しました。
|
3
3
|
|
4
|
+
awk でやるならこんな感じです。
|
5
|
+
sample.txtの1カラム目の値で重複判定しています。重複数の出力はENDブロックで行っています。
|
6
|
+
`$1`を`$2`にすると2カラム目の値で重複判定します。
|
7
|
+
```awk
|
8
|
+
$ cat sample.txt
|
9
|
+
aaa,vvv1
|
10
|
+
wawa,www1
|
11
|
+
bbb,xxx1
|
12
|
+
aaa,yyy1
|
13
|
+
wawa,zzz1
|
14
|
+
bac,vvv1
|
15
|
+
wawa,www1
|
16
|
+
$ cat sample.txt |awk -F, '!colname[$1]++{print $0}END{print "\nduplicate column 1";for (i in colname){if (colname[i]>1) print i":"colname[i];}}'
|
17
|
+
aaa,vvv1
|
18
|
+
wawa,www1
|
19
|
+
bbb,xxx1
|
20
|
+
bac,vvv1
|
21
|
+
|
22
|
+
duplicate column 1
|
23
|
+
wawa:3
|
24
|
+
aaa:2
|
25
|
+
```
|
26
|
+
|
4
27
|
単に以下のようなtxtファイルから重複行を排除、重複した行の数を表示するなら
|
5
28
|
awkではなく`sort` `uniq`で可能です。
|
6
29
|
|
1
回答編集:コードブロックを分割
answer
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
質問からはcsvがどう関係するのかわからないです。
|
2
2
|
**質問へのコメントを記載しました。
|
3
3
|
|
4
|
-
単に以下のようなtxtファイルから重複行を排除、重複した行の数を表示するなら
|
4
|
+
単に以下のようなtxtファイルから重複行を排除、重複した行の数を表示するなら
|
5
|
+
awkではなく`sort` `uniq`で可能です。
|
5
6
|
|
6
|
-
```
|
7
|
+
```bash
|
7
8
|
$ cat sample.txt
|
8
9
|
aaa
|
9
10
|
wawa
|
@@ -12,13 +13,19 @@
|
|
12
13
|
wawa
|
13
14
|
bac
|
14
15
|
wawa
|
16
|
+
```
|
17
|
+
|
15
|
-
|
18
|
+
# 重複を排除したのもの表示
|
19
|
+
```bash
|
16
20
|
$ sort sample.txt | uniq
|
17
21
|
aaa
|
18
22
|
bac
|
19
23
|
bbb
|
20
24
|
wawa
|
25
|
+
```
|
26
|
+
|
21
|
-
|
27
|
+
# 重複行のカウントを表示
|
28
|
+
```bash
|
22
29
|
$ sort sample.txt | uniq -d -c
|
23
30
|
2 aaa
|
24
31
|
3 wawa
|