2017-02-07 14 views
2

シェルはshです。ディレクトリをループしてすべてのtxtファイルのwcを取得する方法はありますか?

私は、forループを使用している:これは、単語数やファイルの名前を返してきた

for F in *.txt 
do 
echo `wc -w $F` 
done 

。なぜファイルの名前を返すのか分からない。ファイル内の単語の数だけを返すように見えます。

+0

'man wc'はあなたの友人です。 – codeforester

+0

'echo'を使うのは冗長です。 'wc -w" $ F "'を使うだけです。 – chepner

答えて

4

デフォルトの動作はwcです。カウント後のファイル名が表示されます。

あなただけのカウントは、STDINを経由してファイル名を渡したい場合は:

wc -w <filename 

また、forを使用してファイルを反復処理せずに、あなたは一度だけで、ファイル名を取得するためにグロブ使用することができ、wcは複数の引数を取りますそう問題はないだろう。

wc -w *.txt 

この場合、ファイル名を取り除くために、いくつかのテキスト処理を使用します。

wc -w *.txt | awk '{print $1}' 

これは、あなたが既に持っているアプローチよりも速いはずです。for

+0

はい、それは役に立ちます。ありがとうございました – ENS

関連する問題