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:
-
grep -c ^b example
: Gibt die Anzahl der übereinstimmenden Zeilen für Zeilen aus, die mit den Buchstabenb
und -
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
zwingtcat
, 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!