Ich versuche, die Befehlszeile besser zu lernen und frage mich, was der Unterschied zwischen diesen beiden Befehlen sein würde.

grep -c ^b example 

und

grep ^b example| cat –n 

Kommentare

  • Willkommen bei Unix & Linux . Wenn Sie die Befehlszeile lernen möchten, können Sie am besten experimentieren, indem Sie die Befehle selbst mit verschiedenen Eingabedateien ausführen. Fragen sollten einige Forschungsanstrengungen zeigen, damit ich ' Wir empfehlen, die relevanten Manpages zu überprüfen, um den Zweck der verschiedenen Optionen herauszufinden. Manpages sind ' nicht am besten lesbar, wenn Sie ' ist neu in Unix. Wenn Sie also Probleme beim Verständnis haben, können Sie diese Frage bearbeiten , um sie zu verbessern spezifisch (und nützlich). Siehe Fragen und nehmen Sie an der -Tour teil.
  • (-1) Nicht einmal die gleichen Befehle. Zwei nicht miteinander verbundene Befehle.
  • Haben Sie versucht, die Befehle auszuführen?

Antwort

Nun gemäß gemäß Handbuch grep:

sucht in jeder DATEI nach MUSTER . Standardmäßig druckt grep die übereinstimmenden Zeilen.

und mit der -c Flag:

-c, --count 

Normale Ausgabe unterdrücken; Drucken Sie stattdessen eine Anzahl übereinstimmender Zeilen für jede Eingabedatei.

grep -c ^b example druckt das Anzahl (Anzahl) der Zeilen, die dem Muster entsprechen, während grep ^b example die Zeilen selbst druckt.

Wie bei cat, Es wird beschrieben, um

Dateien zu verketten und auf dem zu drucken Standardausgabe

und das Flag -n lautet:

-n, --number 

nummerieren Sie alle Ausgangsleitungen

Geben Sie die Pipe und die Nr Dateinamen, cat, werden aus der Pipe gelesen, daher ist die Ausgabe die Ausgabe von grep mit hinzugefügten Zeilennummern. Daher grep ^b example| cat –n druckt alle übereinstimmenden Zeilen mit Nummerierung.


Dies unterscheidet sich von grep -n ^b example, wobei grep fügt das li hinzu ne nummern der streichhölzer. grep kennt die Zeilennummern der Originaldatei, während cat nur die Ausgabe von grep und nummeriert die Zeilen entsprechend.

Angesichts der Eingabedatei

$ cat example bar foo basf 

haben wir:

$ grep -c ^b example 2 $ grep ^b example |cat -n 1 bar 2 basf $ grep -n ^b example 1:bar 3:basf 

Antwort

Befehl ok:

  1. grep -c ^b example: Gibt die Anzahl der übereinstimmenden Zeilen für Zeilen aus, die mit den Buchstaben b und

  2. beginnen grep ^b example | cat -n: Übergeben Sie das Ergebnis des Befehls grep an den Befehl cat und listen Sie sie mit Zeilennummern auf. Die -n zwingt cat, sie zusammen mit den Zeilennummern aufzulisten.

Beispiel :

example.txt mit Inhalt:

media sound3 media sound1 media sound2 find sound -type f -name sound[0-9] -printf "media %f\n" > file.txt find sound -type f -name sound[0-9] -exec bash -c "echo media bash >> file.txt" {} \; find sound -type f -name sound[0-9] -exec bash -c "f="{}"; echo media $( basename ${f}) >> file.txt" \; 

Ergebnis aus (1):

3 

Ergebnis aus (2):

1 media sound3 2 media sound1 3 media sound2 

Kommentare

  • Ja Ihr Recht!

Schreibe einen Kommentar

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