For years I've mostly used uniq -c
with sorted input but I've recently realized that uniq
is great for vertical compression/counting.
Here I pipe clipboard contents into uniq -c
to see how many blank lines appear between the application of changes 6881 and 6882:
% cb | uniq -c
1 applying 6881, event id = 148047427, INSERT_TEXT,6239,0,6240,0,[
1 ]
1 applying 6882, event id = 148047428, INSERT_LINES,6240,0,7479,0,[
1237
1 ]
1 applying 6883, event id = 148047429, INSERT_TEXT,7479,0,7480,0,[
1 ]
1 2017-01-29 17:25:00,762 LimitedEditCodeServiceImpl WARN - Exception applying deltas to program text
1 java.lang.IndexOutOfBoundsException: Index: 7479, Size: 6244
1 at java.util.ArrayList.rangeCheck(ArrayList.java:635)
1 at java.util.ArrayList.get(ArrayList.java:411)
1 at org.cloudcoder.app.shared.model.TextDocument.getLine(TextDocument.java:59)
1 at org.cloudcoder.app.shared.model.ApplyChangeToTextDocument.apply(ApplyChangeToTextDocument.java:41)
1 at edu.arizona.cs.practice.codeextraction.LimitedEditCodeServiceImpl.doLoadCurrentText(LimitedEditCodeServiceImpl.java:103)
1 at edu.arizona.cs.practice.codeextraction.Test1.main(Test1.java:112)
Below I use uniq -c
to collapse repeated lines in query output:
% cb | uniq -c
1 +----------+---------------------+-----------------+------+
1 | username | date | testname | type |
1 +----------+---------------------+-----------------+------+
1 | zjones | 2017-01-19 09:22:56 | number2letter | 2 |
1 | zjones | 2017-01-19 09:22:56 | number2letter | 0 |
2 | zjones | 2017-01-19 09:23:16 | number2letter | 0 |
1 | zjones | 2017-01-19 09:25:06 | number2letter | 0 |
2 | zjones | 2017-01-19 09:25:08 | number2letter | 0 |
1 | zjones | 2017-01-19 09:25:09 | number2letter | 0 |
2 | zjones | 2017-01-19 09:25:10 | number2letter | 0 |
3 | zjones | 2017-01-19 09:25:11 | number2letter | 0 |
3 | zjones | 2017-01-19 09:25:12 | number2letter | 0 |
2 | zjones | 2017-01-19 09:25:18 | number2letter | 0 |
1 | zjones | 2017-01-19 09:25:31 | number2letter | 0 |
...