3
Wie kann ich die Wörter in den ersten Zeilen zählen ?
Eingang:
There are many systems which are Unix-like in their architecture.
Not able among these are the GNU/Linux distributions.
The distinctions between Unix and Unix-like systems.
For distinctions between SUS branded UNIX architectures and other similar architectures, see Unix-like.
Ausgabe:28
Antwort1
Verwenden eines Awk-Einzeilers:
awk ' { gsub("[-/]"," ") } NR<4 { w+=NF };END { print w }' <filename>
Antwort2
$ head -n 3 file | tr -s '/ -' '\n\n\n' | wc -l
28
Die Anzahl 28
scheint der Anzahl zu entsprechen, die Sie für die ersten drei Zeilen des gegebenen Textes erhalten würden, wenn Sie Wörter durch Leerzeichen, Bindestriche und Schrägstriche trennen.
Der obige Befehl teilt die ersten drei Zeilen in jeweils ein Wort pro Zeile auf, indem jedes Leerzeichen, jeder Bindestrich und jeder Schrägstrich durch einen Zeilenumbruch ersetzt wird (und mehrere aufeinanderfolgende Zeilenumbrüche mit der -s
Option mit entfernt werden tr
) und zählt dann die Anzahl der durch diese Aufteilung entstandenen Zeilen.
Wenn Sie das natürlichere verwenden head -n 3 file | wc -w
, erhalten Sie 25
Wörter. Dies liegt daran, dass nur durch Leerzeichen getrennte Wörter gezählt werden und sowohl als auch als einzelne Wörter wc -w
betrachtet werden .Unix-Like
GNU/Linux
Antwort3
Mit GNU grep
oder kompatibel:
<myfile head -n 3 | grep -aEo '\w+' | wc -l
Wörterin diesem Fall handelt es sich um Folgen aus einem oder mehreren alphanumerischen Zeichen oder Unterstrichen.
Antwort4
head -n 4 myfile | wc -w
myfile ist die Eingabedatei, 4 sind die ersten 4 Zeilen