回答編集履歴
2
Update
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
`test.txt` の内容を見ると、
|
1
|
+
`test.txt` の内容を見ると、3,4,5列目の幅の合計は固定(`11*3=33桁`)の様なので、GNU coreutils の uniq コマンドで処理してみます。
|
2
2
|
|
3
3
|
テストのために重複行の位置を変更しておきます。
|
4
4
|
```test.txt
|
@@ -6,15 +6,15 @@
|
|
6
6
|
002 5678 6 4 0 テスト2
|
7
7
|
003 9012 7 8 6 テスト3
|
8
8
|
004 3456 27 27 0 テスト4
|
9
|
-
005 1123 8 19 26 テスト
|
9
|
+
005 1123 8 19 26 テスト5
|
10
|
-
006 7890 27 27 0 テスト
|
10
|
+
006 7890 27 27 0 テスト6
|
11
11
|
```
|
12
12
|
|
13
13
|
```bash
|
14
14
|
$ uniq --version
|
15
15
|
uniq (GNU coreutils) 8.32
|
16
16
|
|
17
|
-
$ cat test.txt | sort -k3,5 | uniq -D -
|
17
|
+
$ cat test.txt | sort -k3,5 | uniq -D -f 2 -w 33 # 先頭の2列を無視、直後の33文字で比較
|
18
18
|
004 3456 27 27 0 テスト4
|
19
|
-
006 7890 27 27 0 テスト
|
19
|
+
006 7890 27 27 0 テスト6
|
20
20
|
```
|
1
Update
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
`test.txt` の内容を見ると、各列の位置が決まっている様なので(3,4,5列は
|
1
|
+
`test.txt` の内容を見ると、各列の位置が決まっている様なので(3,4,5列は15桁目から47桁目まで)、GNU coreutils の uniq コマンドを使ってみます。
|
2
2
|
|
3
3
|
テストのために重複行の位置を変更しておきます。
|
4
4
|
```test.txt
|