В Unix я печатаю уникальное значение для первого символа в поле.Я также печатаю количество уникальных длин полей. Теперь я хотел бы сделать оба вместе. Легко сделать в SQL, но я не уверен, как это сделать в Unix с помощью awk (или grep, sed, ...).
ПЕЧАТЬ ПЕРВЫХ УНИКАЛЬНЫХ ВЕДУЩИХ ЧАР
awk -F'|' '{print substr($61,1,1)}' file_name.sqf | sort | uniq
ПЕЧАТЬ СЧЕТА ПОЛЕЙ С ДЛИНАМИ 8, 10, 15
awk -F'|' 'NR>1 {count[length($61)]++} END {print count[8] ", " count[10] ", " count[15]}' file_name.sqf | sort | uniq
ЖЕЛАЕМЫЙ ВЫХОД
first char, length 8, length 10, length 15
a, 10, , 150
b, 50, 43, 31
A, 20, , 44
B, 60, 83, 22
Поля, которыеначинаются с верхнего или нижнего «а», никогда не имеют длины 10.
Входной файл представляет собой |с разделителями .sqf без заголовка.Поле является varChar 15.
пример ввода
56789 | someValue | aValue | otherValue | 712345
46789 | someValue | bValue | otherValue | 812345
36789 | someValue | AValue | otherValue | 912345
26789 | someValue | BValue | otherValue | 012345
56722 | someValue | aValue | otherValue | 712345
46722 | someValue | bValue | otherValue | 812345
желаемый вывод
a: , , 2
b: 1, , 1
A: , , 1
B: , 1,
'a' имеет два экземпляра длиной 15 'b' имеет один экземпляркаждая длина 8 и 15 'A' имеет один экземпляр, длина 15 'B' имеет один экземпляр длиной 10
Спасибо.