целое число трехзначных чисел в текстовом файле

У меня есть текстовый файл с сотнями трехзначных чисел.
Например:

 0  2  3
 0  2  3
 0  2  9
 0  3  9
 0  9  2
 0  9  2
 0  9  9
 1  2  2
 1  2  2
 1  2  2
 1  2  9
 1  2  9
 1  3  3
 1  9  2
 1  9  2
 1  9  2
 1  9  3
 1  9  9
 1  9  9
 1  9  9
 1  9  9
 2  0  2
 2  0  3
 2  0  9
 2  1  2
 2  1  2
 2  1  3
 2  1  9
 2  1  9
 2  2  4
 2  2  5
 2  2  5
 2  2  5
 2  2  6
 2  2  6
 2  2  8

Я хочу преобразовать это для показа, сколько из каждого числа находится в файле, чтобы выглядеть примерно так:

 0  2  3     2
 0  9  2     2
 1  2  2     3
 etc
0
задан 12 February 2019 в 18:58

2 ответа

sort -n numbers.txt | uniq -c | sed -E 's/^( *[0-9]+) (.*)$/\2 \1/' был бы самый простой способ достигнуть Вашей цели. Это:

  • sorts Ваши числа сначала, на всякий случай
  • считает длину каждого unique установлен
  • seds результат для перемещения количества в заднюю часть каждой строки
1
ответ дан 26 October 2019 в 06:39

То, что строки состоят из последовательностей цифр, в основном не важно - если Вы не хотите сделать арифметику на самих числах, можно рассчитать / uniquify их точно так же, как любые другие строки, например, использование ассоциативного массива или хеша:

awk '{c[$0]++} END {for (i in c) printf "%s\t%d\n", i, c[i]}' numbers.txt

или

perl -lnE '$c{$_}++ }{ for $k (keys %c) { say "$k\t$c{$k}" }' numbers.txt
1
ответ дан 26 October 2019 в 06:39

Другие вопросы по тегам:

Похожие вопросы: