Ich habe eine Textdatei mit 1000 zufälligen Groß- und Kleinbuchstaben erstellt:
cat /dev/urandom | tr -dc "a-zA-Z0-9" | head -c 1000 > file1
Wie oft erscheint das Wort „cat“ in dieser Datei mit grep
und wc
?
Ich habe es so gemacht:
grep -ic cat file1
Aber es zählt die Zeilen, in denen es erscheint, während ich überprüfen möchte, wie viele Mal erscheint es in dieser einen Zeile. Irgendeine Idee?
Kommentare
- fyi, tr kann [: alnum:] anstelle von az verwenden. Und Sie möchten zählen, wie oft es in der gesamten Datei angezeigt wird, nicht nur in der Zeile jeder oder nur in einer bestimmten Zeile (Sie sagten " in dieser einen Zeile " am Ende)?
Antwort
Ich muss nur herausfinden, wie oft in dieser Datei die Welt „cat“ mit dem Befehl
grep
undwc
.
Versuchen Sie:
grep -oi cat file1 | wc -l
Beispiel:
$ cat file1 foo cat bar zoo cat random text cat dog foobar cat end!
^ Wir haben vier Vorkommen von cat
oben.
grep -oi cat file1 | wc -l 4
Von man grep
(meine Betonung):
-o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
Kommentare
- Der obige Befehl findet alle Teilzeichenfolgen cat , auch wenn sie Teil sind von anderen Wörtern wie bob cat und cat alougue. Aber die Datei wird so erstellt, dass sie keinen Platz enthält, kein Wort bremst keinen Zeilenumbruch. Daher ist dies nur eine Anmerkung.
- @schweik Ja, das ist wahr. Ich habe meiner Antwort keine Wortgrenzen hinzugefügt.