After asking a question on ubuntuforums.org and not getting a satisfying answer, I've decided to ask the question again here on Ask Ubuntu. I need the answer to be very detailed. Specifically, I need to know which lines get compared every time a line is printed using uniq for the following two examples:
file1.txt:
$ cat -A file1.txt
aaa^Iupc$
b$
c$
aaa^Iztp$
b$
c$
C$
A$
B$
B$
b$
$ sort file1.txt | uniq -f 1
A
aaa upc
aaa ztp
b
and file2.txt:
$ cat -A file2.txt
aaa^Iupc$
b$
c$
aaa^Iztp$
b$
c$
C$
A$
B$
B$
bbb^Ixpz$
$ sort file2.txt | uniq -f 1
A
aaa upc
aaa ztp
b
bbb xpz
c
I'm confused about the second example. I don't understand how come uppercase B doesn't end up in the final output. Shouldn't the line with uppercase B be printed given that lines B and bbb xpz are both adjacent to each other?
If:
B ---> (empty)
and
bbb ---> xpz
an empty value and xpz are both unique so both lines should be printed. Or am I missing something?
sort, you would not get the liens sorted at the first place. SO, only the successive lines that have single field in the original file would result in only the first line. – heemayl Jun 09 '17 at 03:22z. To get a better view, runsort file2.txtwith and without addingz. – heemayl Jun 09 '17 at 03:51