ファイルの最初のn行にある総単語数を計算するUnixコマンドを作成しますか?

ファイルの最初のn行にある総単語数を計算するUnixコマンドを作成しますか?

3最初の行の単語数を計算する方法は?

入力する:

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.

出力:28

答え1

1行にawkを使用してください。

awk ' { gsub("[-/]"," ") } NR<4 { w+=NF };END { print w }' <filename>

答え2

$ head -n 3 file | tr -s '/ -' '\n\n\n' | wc -l
      28

スペース、ダッシュ、スラッシュで単語を区切ると、28そのテキストの最初の3行の数が表示されます。

上記のコマンドは、各スペース、ダッシュ、およびスラッシュを改行文字に置き換えて(そして-s複数の連続改行文字を削除するためにwithオプションを使用してtr)、最初の3行を1行に1つの単語に分割し、この分割を計算しますによって生成された行数を計算します。

より自然な単語を使用すると、単語をhead -n 3 file | wc -w得ることができます25wc -wスペースで区切られた単語のみが計算され、その合計が1つの単語Unix-Likeとして扱われるためです。GNU/Linux

答え3

GNUgrepまたは互換製品を使用してください。

<myfile head -n 3 | grep -aEo '\w+' | wc -l

性格この場合、1 つ以上の英数字または下線のシーケンスです。

答え4

head -n 4 myfile | wc -w

myfileは入力ファイルで、4は最初の4行です。

関連情報