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 und wc.

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.