Предположим, что есть столбец числовых значений, например:
File1:
1
2
3
3
3
4
4
4
5
6
Я хочу вывод:
3
4
То есть только повторные строки. Есть ли инструменты командной строки, чтобы узнать это в Linux? (Примечание: значения отсортированы по номерам).
shell
text-processing
Mindfreak
источник
источник
man uniq
.Ответы:
Вы можете использовать
uniq(1)
для этого:Это распечатает только дубликаты. Входной файл должен быть отсортирован так, чтобы все дубликаты были последовательными (что они кажутся), поэтому сначала выполните его сортировку, если это не так.
источник
sort | uniq -c | grep '^\s*3\s' | sed 's/^\s*[0-9]*\s*//'
для трех экземпляров; замените «3» на любой N для N-складокsort | uniq -c | sed -n 's/^[[:blank:]]*3[[:blank:]]\{1,\}//p'
для трех экземпляровИспользование
uniq
иawk
:источник
cat
?uniq -c File1
и так же, как многие другие инструменты. Это, вероятно, то, что здесь происходит.Выполните это:
perl -ne 'print if $a{$_}++' filename.txt
источник
3\n3\n4\n\4n
для входа File1, который, очевидно, неправильно.uniq
требует, чтобы ваш список был упорядочен, сортировка по умолчанию в алфавитном порядкеsort | uniq -d path/to/your/filename
или же
cat fileName | sort | uniq -d path/to/your/filename
источник