複数のファイルに単語数をリストするにはどうすればよいですか?


9

「work」という単語が含まれている各ファイルの単語数を調べる必要があるとします。

私はそれで「仕事」でファイルを検索することを知って、それは次のようになりますls work。そして、それは言葉の数を理解するためにwc -w

しかし私はこれを試しました、そしてそれは単にファイルの数を表示しているようであり、すべてのファイルで結合された単語の数ではありません(私が必要とします):

ls work | wc -w

したがって、「作業」の前提条件に従う14個のファイルがある場合、単語数ではなく14個と表示されます。

回答:


17

構文はwc -w [FILE]です。FILEを使用せずに、その出力をパイプ処理すると、ls workstdinで読み取るものだけがカウントされます。

あなたはテキスト自体をパイプする必要があります:

cat *work* | wc -w

あなたが実行できる代替wcfind -exec。ただし、ファイルが多数ある場合findは、複数の「合計」合計が表示される可能性があることに注意してくださいwc

find ./ -type f -name "*work*" -exec wc -w {} +

findコマンドを使用して、を使用して行数を合計することもできましたwc -l。すごい!
cody.codes

3

wc複数のファイルで実行してから、組み込みのシェルを使用*して、作業ディレクトリ内のすべての非隠しファイルをwcのパラメータに追加できます。

wc -w *work*

ディレクトリの名前が含まれている場合work、これはerror..aハックとともに出力はSTDERRをリダイレクトすることで表示され、その後2>/dev/null、あなたがのようなものを使用する必要があり..although find..ファイルのみを取得するには
heemayl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.