Potrzebowałbym programu, który wyświetla liczbę różnych znaków w pliku. Przykład:
> stats testfile
' ': 207
'e': 186
'n': 102
Czy istnieje jakieś narzędzie, które to robi?
command-line
files
text-processing
Memento
źródło
źródło
sed 's/\(.\)/\1\'$'\n/g' text.txt
sed
, ale rozwiązanie Python Jacoba Vlijma działało dla mnie dobrze.Rozwiązanie Stevena jest dobre, proste. Nie jest tak wydajny w przypadku bardzo dużych plików (plików, które nie mieszczą się wygodnie w około połowie pamięci RAM) z powodu kroku sortowania. Oto wersja awk. Jest to także trochę bardziej skomplikowane, ponieważ stara się zrobić dobry uczynek dla kilku znaków specjalnych (znaki nowej linii,
'
,\
,:
).Oto rozwiązanie Perla na tej samej zasadzie. Perl ma tę zaletę, że może sortować wewnętrznie. Również to nie będzie poprawnie liczyć dodatkowej nowej linii, jeśli plik nie kończy się znakiem nowej linii.
źródło
Wolna, ale stosunkowo przyjazna dla pamięci wersja, wykorzystująca ruby. Około tuzina MB pamięci RAM, niezależnie od wielkości wejściowej.
źródło