teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

man uniqのリンク・引用を追記

2017/02/21 07:19

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,5 +1,9 @@
1
- 2以上のものであれば`uniq`の`-d`オプション(2件以上のもののに出力)で。
1
+ 2以上のものであれば`uniq`の`-d`オプションで。
2
2
 
3
+ [(linuxjm.osdn.jp)man UNIQ](https://linuxjm.osdn.jp/html/GNU_textutils/man1/uniq.1.html)
4
+ > -d, --repeated
5
+ > 同じ内容が二行以上あるものだけを出力する。
6
+
3
7
  ```
4
8
  $ sort sample.txt | uniq -d -c
5
9
  3 aaa

3

指定条件の説明を追記

2017/02/21 07:18

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,4 +1,4 @@
1
- 2以上のものであれば`uniq`の`-d`オプションで
1
+ 2以上のものであれば`uniq`の`-d`オプション(2件以上のもののに出力)
2
2
 
3
3
  ```
4
4
  $ sort sample.txt | uniq -d -c
@@ -7,6 +7,7 @@
7
7
  ```
8
8
 
9
9
  任意の数以上であれば、awkを通してこんな感じでどうでしょう。
10
+ 条件`$1 > 1`の`$1`が件数の部分なのでこの条件を変更すれば3件以上(`$1 >= 3`)とか、2件以上3件以下($1 >= 2 && $1 <= 3')とか色々できます。
10
11
 
11
12
  ```
12
13
  $ sort sample.txt | uniq -c | awk '$1 > 1 { print $0;}'

2

回答追記:awkの{}内省略した場合を追加

2017/02/21 07:15

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -9,7 +9,14 @@
9
9
  任意の数以上であれば、awkを通してこんな感じでどうでしょう。
10
10
 
11
11
  ```
12
- sort sample.txt | uniq -c | awk '$1 > 1 { print $0;}'
12
+ $ sort sample.txt | uniq -c | awk '$1 > 1 { print $0;}'
13
13
  3 aaa
14
14
  2 ccc
15
+
16
+ $ #awkの{}を省略して以下でも可
17
+ $ sort sample.txt | uniq -c | awk '$1 > 1'
18
+ 3 aaa
19
+ 2 ccc
20
+
15
- ```
21
+ ```
22
+

1

コード編集:uniq -dの結果表示がおかしかったので修正

2017/02/21 06:48

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -3,6 +3,7 @@
3
3
  ```
4
4
  $ sort sample.txt | uniq -d -c
5
5
  3 aaa
6
+ 2 ccc
6
7
  ```
7
8
 
8
9
  任意の数以上であれば、awkを通してこんな感じでどうでしょう。