Załóżmy, że istnieje kolumna wartości liczbowych, takich jak:
Plik 1:
1
2
3
3
3
4
4
4
5
6
Chcę wynik:
3
4
Oznacza to, że tylko powtarzające się linie. Czy są jakieś narzędzia wiersza poleceń, aby dowiedzieć się tego w Linuksie? (Uwaga: wartości są sortowane numerycznie).
shell
text-processing
MiNdFrEaK
źródło
źródło
man uniq
.Odpowiedzi:
Możesz użyć
uniq(1)
do tego:Spowoduje to wydrukowanie tylko duplikatów. Plik wejściowy musi być posortowany w taki sposób, aby wszystkie duplikaty były następujące po sobie (jak się wydaje), więc najpierw uruchom sortowanie, jeśli tak nie jest.
źródło
sort | uniq -c | grep '^\s*3\s' | sed 's/^\s*[0-9]*\s*//'
dla trzech powtórzeń; zamień „3” na N dla N-płyteksort | uniq -c | sed -n 's/^[[:blank:]]*3[[:blank:]]\{1,\}//p'
dla trzech powtórzeńKorzystanie
uniq
iawk
:źródło
cat
?uniq -c File1
i podobnie z wieloma innymi narzędziami. Prawdopodobnie o to tu chodzi.Wykonaj to:
perl -ne 'print if $a{$_}++' filename.txt
źródło
3\n3\n4\n\4n
wejściowy plik 1, który jest oczywiście błędny.