Я хочу выполнить две разные сортировки и рассчитывать на файл, в зависимости от содержимого каждой строки.
1. мне нужно взять первый столбец файла .tsv
я хотел бы сгруппировать по каждой строке, которая начинается с трех цифр, и оставить только три первые цифры, а для всего остального просто отсортировать и сосчитать все вхождения предложения в первом столбце.
Пример данных:
687/878 9
890987 4
01a 55
1b 8743917
890a 34
abcdee 987
dfeqfe fkdjald
890897 34213
6878853 834
32fasd 53891
abcdee 8794371
abd 873
результат:
687 2
890 3
01a 1
1b 1
32fasd 1
abd 1
dfeqfe 1
abcdee 2
Я также был бы признателен за решение, которое
также учитывает пример ввода, такой как
687/878 9
890987 4
01a 55
1b 8743917
890a 34
abcdee 987
dfeqfe 545
890897 34213
6878853 834
(632)fasd 53891
(88)abcdee 8794371
abd 873
поэтому первый столбец может иметь значения, такие как (,), #, ', всевозможные символы
поэтому в выводе будут два столбца: первый с извлеченными значениями, а второй с новым счетчиком, с новыми значениями, извлеченными из исходного файла.
Опять предпочтительный формат вывода цв.
, поэтому мне нужно извлечь все значения, которые начинаются с
^ \ d \ d \ d, а затем для этих трех первых цифр сортируйте и подсчитывайте уникальные значения,
но во втором проходе также сделайте то же самое для каждой строки, которая не начинается с 3 цифр, но на этот раз сохраните значение целого столбца и подсчитайте его по нему.
что я пробовал:
| sort | uniq -c | sort -nr
для строк, начинающихся с ^ \ d \ d \ d, и
то же самое для тех, кто не выполняет вышеприведенное регулярное выражение, но есть ли более элегантный способ с использованием sed
или awk
?