it-swarm-tr.com

Belgedeki satırlar nasıl sayılır?

Bunun gibi çizgiler var ve kaç tane hattım olduğunu bilmek istiyorum.

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00    0.00    0.00    0.00    0.00   92.00

Hepsini linux komutlarını kullanarak saymanın bir yolu var mı?

899
Alucard

wc öğesini kullanın:

wc -l <filename>

Bu, <filename> içindeki satır sayısını gösterecektir:

$ wc -l /dir/file.txt
3272485 /dir/file.txt

Veya, sonuçtan <filename> atlamak için wc -l < <filename> kullanın:

$ wc -l < /dir/file.txt
3272485

Verileri ayrıca wc dosyasına da aktarabilirsiniz:

$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63
1691
user85509

Tüm satırları saymak için kullanın:

$ wc -l file

Yalnızca desen kullanan satırları filtrelemek ve saymak için:

$ grep -w "pattern" -c file  

Veya eşleşmeyi tersine çevirmek için -v kullanın:

$ grep -w "pattern" -c -v file 

-E, -i ve -x arglarına göz atmak için grep man sayfasına bakın ...

130
Lauro Oliveira
wc -l <file.txt>

Veya

command | wc -l
67
John Kugelman

birçok yolu var. wc kullanmak bir tanedir.

wc -l file

diğerleri dahil

awk 'END{print NR}' file

sed -n '$=' file (GNU sed)

grep -c ".*" file
42
ghostdog74

wcaracı, UNIX ve UNIX benzeri işletim sistemlerinde "Kelime sayacı" dır, ayrıca bir dosyadaki satırları saymak için -l seçeneğini ekleyerek de kullanabilirsiniz, böylece wc -l foo, fooiçindeki satır sayısını sayar. Çıktıyı aşağıdaki gibi bir programdan aktarabilirsiniz: ls -l | wc -l, bu da mevcut dizinde kaç tane dosya olduğunu gösterir.

24
theunamedguy

Bir dizindeki tüm dosyaların toplam satırını kontrol etmek istiyorsanız find ve wc komutlarını kullanabilirsiniz:

find . -type f -exec wc -l {} +
22
storen

wc öğesini kullanın:

wc -l <filename>
21
Vivin Paliath

İstediğiniz tek şey satır sayısıysa (satır sayısı ve geri dönen aptal dosya adı değil):

wc -l < /filepath/filename.ext

Daha önce de belirtildiği gibi bunlar da işe yarar (ancak diğer nedenlerden dolayı yetersizdir):

awk 'END{print NR}' file       # not on all unixes
sed -n '$=' file               # (GNU sed) also not on all unixes
grep -c ".*" file              # overkill and probably also slower
13
ggb667

Bunu kullanıyorum:

cat myfile.txt | wc -l

Kabul edilen yanıtı tercih ederim çünkü dosya adını yazmıyor ve düzeltmek için awk kullanmak zorunda değilsiniz. Kabul edilen cevap:

wc -l myfile.txt

Ama bence en iyisi GGB667'nin cevabı:

wc -l < myfile.txt

Muhtemelen bunu bundan sonra kullanacağım. Benim yolumdan biraz daha kısa. Birisi tercih ederse diye eski yöntemimi yapıyorum. Çıktı, bu iki yöntemle aynıdır.

7
Buttle Butkus

Bu gibi nl kullanın:

nl filename

man nl adresinden:

Her DOSYA'yı standart çıktıya, satır numaraları eklenmiş olarak yazın. DOSYA olmadan veya DOSYA - olduğunda standart girişi okuyun.

6
decimal

Birden fazla dosya satırını saymanın bir yolunu ararken bu soruyu gördüm, bu yüzden .txt dosyasının birden fazla satırını saymak istiyorsanız bunu yapabilirsiniz.

cat *.txt | wc -l

aynı zamanda bir .txt dosyası üzerinde çalışacak;)

5
talsibony

Yukarıda tercih edilen yöntem ancak "cat" komutu da yardımcı olabilir:

cat -n <filename>

Dosyanın tüm içeriğini satır numaralarıyla birlikte gösterecektir.

5
Yogi
wc -l file.txt | cut -f3 -d" "

Yalnızca satır sayısını döndürür

4
Umur Kontacı
cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+':YALNIZCA RAKAM SAYILARINI D&OUML;ND&UUML;RMEK I&CCEDIL;IN.
4
AechoLiu

Yeniden Yönlendirme/Dosyanın çıktısını wc -l 'a aktarmak aşağıdaki gibi yeterli olacaktır:

cat /etc/fstab | wc -l

ki o zaman hayır sağlayacaktır. sadece.

3
tk3000

Veya, alt dizinlerdeki tüm satırları bir dosya adı deseniyle sayın (örneğin, dosya adında zaman damgalı logfiles):

wc -l ./**/*_SuccessLog.csv
2
jwebuser

Bunun eski olduğunu biliyorum ama yine de:Filtrelenmiş satırları say

Dosyam şuna benziyor:

Number of files sent
Company 1 file: foo.pdf OK
Company 1 file: foo.csv OK
Company 1 file: foo.msg OK
Company 2 file: foo.pdf OK
Company 2 file: foo.csv OK
Company 2 file: foo.msg Error
Company 3 file: foo.pdf OK
Company 3 file: foo.csv OK
Company 3 file: foo.msg Error
Company 4 file: foo.pdf OK
Company 4 file: foo.csv OK
Company 4 file: foo.msg Error

Kaç dosyanın gönderildiğini bilmek istersem:

grep "OK" <filename> | wc -l

OR

grep -c "OK" filename

Sadece bunu yapmak için bir program yaptım (node ile)

npm install gimme-lines
gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html

https://github.com/danschumann/gimme-lines/tree/master

1
Funkodebat

satır sayısını saymak ve değişkende saklamak sonucu bu komutu kullanın:

count=$(wc -l < file.txt) echo "Number of lines: $count"

1
Konstantin F

Diğerlerinin dediği gibi wc -l en iyi çözümdür, ancak ileride başvurmak için Perl kullanabilirsiniz:

Perl -lne 'END { print $. }'

$. satır numarası içerir ve END bloğu komut dosyasının sonunda yürütülür.

0
Majid Azimi