Если у меня есть текстовый файл со следующим содержанием
red apple
green apple
green apple
orange
orange
orange
Есть ли команда или сценарий Linux, которые я могу использовать для получения следующего результата?
1 red apple
2 green apple
3 orange
linux
text
duplicates
timeon
источник
источник
-d
заметку.uniq -c file
и если файл еще не отсортирован:
sort file | uniq -c
источник
Попробуй это
источник
источник
Можете ли вы жить с алфавитным упорядоченным списком:
?
или
-u означает уникальный, а уникальность достигается только путем сортировки.
Решение, сохраняющее порядок:
и с напильником
Последние два удаляют только дубликаты, которые следуют сразу же, что соответствует вашему примеру.
Напечатает два яблока, разделенных бананом.
источник
Чтобы просто подсчитать:
Чтобы получить отсортированное количество:
РЕДАКТИРОВАТЬ
Ага, это было НЕ по границам слов, моя беда. Вот команда, которую нужно использовать для полных строк:
источник
Вот простой скрипт на Python, использующий тип Counter . Преимущество в том, что это не требует сортировки файла, по сути, с использованием нулевой памяти:
Вывод:
или вы можете использовать простой однострочный:
источник