シェルはshです。ディレクトリをループしてすべてのtxtファイルのwcを取得する方法はありますか?
私は、forループを使用している:これは、単語数やファイルの名前を返してきた
for F in *.txt
do
echo `wc -w $F`
done
。なぜファイルの名前を返すのか分からない。ファイル内の単語の数だけを返すように見えます。
シェルはshです。ディレクトリをループしてすべてのtxtファイルのwcを取得する方法はありますか?
私は、forループを使用している:これは、単語数やファイルの名前を返してきた
for F in *.txt
do
echo `wc -w $F`
done
。なぜファイルの名前を返すのか分からない。ファイル内の単語の数だけを返すように見えます。
デフォルトの動作はwc
です。カウント後のファイル名が表示されます。
あなただけのカウントは、STDINを経由してファイル名を渡したい場合は:
wc -w <filename
また、for
を使用してファイルを反復処理せずに、あなたは一度だけで、ファイル名を取得するためにグロブ使用することができ、wc
は複数の引数を取りますそう問題はないだろう。
wc -w *.txt
この場合、ファイル名を取り除くために、いくつかのテキスト処理を使用します。
wc -w *.txt | awk '{print $1}'
これは、あなたが既に持っているアプローチよりも速いはずです。for
はい、それは役に立ちます。ありがとうございました – ENS
'man wc'はあなたの友人です。 – codeforester
'echo'を使うのは冗長です。 'wc -w" $ F "'を使うだけです。 – chepner