Birden çok dosyada kelime sayısını nasıl listeleyebilirim?


9

Her dosyada içinde 'iş' kelimesi olan kaç kelime olduğunu bulmam gerektiğini söyle.

İçinde 'iş' olan dosyalar bulmak için biliyorum ls work. Ve kelime sayısını anlamak içinwc -w

Ancak bunu denedim ve tüm dosyalarda (ihtiyacım olan) birleştirilen sözcük sayısını değil, sadece dosya sayısını gösteriyor gibi görünüyor:

ls work | wc -w

Diyelim ki 'iş' ön koşulunu izleyen 14 dosya varsa, kelime sayısını değil 14'ü gösterecektir.

Yanıtlar:


17

Sözdizimi wc -w [FILE]. DOSYA kullanmazsanız, ancak çıkıştaki boru ls workyalnızca stdin'de ne okuyacağını sayar.

Metnin kendisini oluşturmalısınız:

cat *work* | wc -w

Alternatif sen yürütebilir wcile find -exec. Ancak bunun, çok sayıda dosya varsa birden çok kez findçağıracağı gibi birden çok "toplam" toplamı gösterebileceğini unutmayın wc.

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

Kullandığım findde kullanarak çizgilerin sayısını özetlemek mümkün komutu wc -l. İnanılmaz!
cody.codes

3

wcBirden çok dosyayla çalışabilir ve daha sonra *çalışma dizinindeki gizli olmayan her dosyayı wcparametrelerine ekleyen yerleşik kabuk kullanabilirsiniz .

wc -w *work*

Bir dizinin adı içeriyorsa, workbu bir hatayla birlikte çıktıyı gösterecektir .. Bir kesmek STDERR'yi yönlendirmek olacaktır .. sadece dosyaları almak 2>/dev/nullgibi bir şey kullanmanız gerekir find..
heemayl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.