Měl jsem příkaz, který by fungoval přes textový soubor, spočítal všechny výskyty slov a vytiskl jej takto:
[email protected] $˜ magic-command-i-forgot | with grep | and awk | sort ./textfile.txt
66: the
54: and
32: I
16: unix
12: bash
5: internet
3: sh
1: GNU/Linux
Nehledá tedy řádek po řádku, ale slovo po slovu, a to pro všechna slova, nejen pro 1 slovo. Už jsem to dávno našel někde na internetu, ale nemůžu to najít ani si to nepamatuji..
Přijatá odpověď:
Použil bych tr
místo awk :
echo "Lorem ipsum dolor sit sit amet et cetera." | tr '[:space:]' '[\n*]' | grep -v "^\s*$" | sort | uniq -c | sort -bnr
tr
pouze nahradí mezery novými řádkygrep -v "^\s*$"
ořízne prázdné řádkysort
připravit jako vstup prouniq
uniq -c
počítat výskytysort -bnr
seřadí v číselném obráceném pořadí a ignoruje mezery
Páni. ukázalo se, že je to skvělý příkaz k počítání nadávek na řádky
najít -name “*.py” -exec cat {} \; | tr ‘[:mezera:]’ ‘[\n*]’ | grep -v “^\s*$” | seřadit | uniq -c | seřadit -bnr | grep fuck