指定された行数の単語数を計算する方法は?

指定された行数の単語数を計算する方法は?

行数がコマンドライン引数として指定されたファイルから単語を数えるのに興味深い問題があります。たとえば、入力テキストファイルに次のものがある場合 -

Unix is an OS
Linux is the child of Unix
Unix is fun.
End of File

実行するコマンドは次のとおりです。

bash test.sh unix.txt 3

文を含むテストファイルはどこにunix.txtあり、3は単語数を数える行数です。答えは13です。

基本的なコマンドを試してみましたが、wcどちらも正解を提示しませんでした。

だから私はforループを試しましたが、これらの行番号だけを取得する方法を指定することはできません。

ベストアンサー1

head -n 3 unix.txtファイルの最初の3行をインポートしてから、次にパイプすることができます。wc

したがって、シェル変数に格納されているファイル名の場合$file

{ head -n 3 | wc -w; } < "$file"

または:

head -n 3 -- "$file" | wc -w

後者は、-一部headの実装で呼び出されたファイルに対して機能せず、ファイルを開くことができないときにエラーメッセージ(を介して)と共に出力されます0headにあります。pipefail

おすすめ記事