Utworzyłem plik tekstowy z 1000 losowo wybranych wielkich i małych liter:
cat /dev/urandom | tr -dc "a-zA-Z0-9" | head -c 1000 > file1
Ile razy słowo „kot” pojawia się w tym pliku przy użyciu grep
i wc
?
Zrobiłem to w ten sposób:
grep -ic cat file1
Ale liczy wiersze, w których się pojawia, a ja chcę sprawdzić, ile razy pojawia się w tej jednej linii. Masz jakiś pomysł?
Komentarze
- fyi, tr może używać [: alnum:] zamiast az .. . Chcesz policzyć, ile razy pojawia się w całym pliku, a nie tylko w każdym wierszu lub tylko w jednym wierszu (powiedziałeś " w tym jednym wierszu " na końcu)?
Odpowiedz
Praca, którą muszę zrobić, to sprawdzić, ile razy w tym pliku pojawia się świat „cat” za pomocą polecenia
grep
iwc
.
Spróbuj:
grep -oi cat file1 | wc -l
Przykład:
$ cat file1 foo cat bar zoo cat random text cat dog foobar cat end!
^ Mamy cztery wystąpienia cat
powyżej.
grep -oi cat file1 | wc -l 4
From man grep
(wyróżnienie moje):
-o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
Komentarze
- Powyższe polecenie znajdzie wszystkie podciągi cat , nawet jeśli są częścią innych słów, takich jak bob kot i kot alougue. Ale plik jest tworzony tak, że nie zawiera spacji, ani słowa przerywającego, ani podziału wiersza. Dlatego to tylko uwaga.
- @schweik Tak, to prawda. Nie dodałem żadnych granic słów do mojej odpowiedzi.