it-swarm-id.com

Bagaimana cara menghitung baris dalam dokumen?

Saya memiliki garis seperti ini, dan saya ingin tahu berapa banyak garis yang sebenarnya saya miliki ...

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

Apakah ada cara untuk menghitung semuanya menggunakan perintah linux?

899
Alucard

Gunakan wc:

wc -l <filename>

Ini akan menampilkan jumlah baris dalam <filename>:

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

Atau, untuk menghilangkan <filename> dari hasilnya gunakan wc -l < <filename>:

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

Anda juga dapat mengirim data ke wc juga:

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

Untuk menghitung semua baris gunakan:

$ wc -l file

Untuk memfilter dan menghitung hanya garis yang menggunakan pola:

$ grep -w "pattern" -c file  

Atau gunakan -v untuk membalikkan kecocokan:

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

Lihat halaman manual grep untuk melihat argumen -e, -i dan -x ...

130
Lauro Oliveira
wc -l <file.txt>

Atau

command | wc -l
67
John Kugelman

ada banyak cara. menggunakan wc adalah satu.

wc -l file

yang lain termasuk

awk 'END{print NR}' file

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

grep -c ".*" file
42
ghostdog74

Alat wc adalah "Penghitung kata" dalam sistem operasi UNIX dan UNIX, Anda juga dapat menggunakannya untuk menghitung baris dalam file, dengan menambahkan opsi -l, jadi wc -l foo akan menghitung jumlah baris dalam foo. Anda juga dapat mem-pipe output dari program seperti ini: ls -l | wc -l, yang akan memberi tahu Anda berapa banyak file yang ada di direktori saat ini.

24
theunamedguy

Jika Anda ingin memeriksa baris total semua file dalam direktori, Anda dapat menggunakan find dan wc:

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

Gunakan wc:

wc -l <filename>
21
Vivin Paliath

Jika yang Anda inginkan adalah jumlah baris (dan bukan jumlah baris serta nama file bodoh yang muncul kembali):

wc -l < /filepath/filename.ext

Seperti yang disebutkan sebelumnya ini juga berfungsi (tetapi lebih rendah karena alasan lain):

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

Saya telah menggunakan ini:

cat myfile.txt | wc -l

Saya lebih suka daripada jawaban yang diterima karena tidak mencetak nama file, dan Anda tidak harus menggunakan awk untuk memperbaikinya. Jawaban yang diterima:

wc -l myfile.txt

Tapi saya pikir yang terbaik adalah jawaban GGB667:

wc -l < myfile.txt

Saya mungkin akan menggunakannya mulai sekarang. Ini sedikit lebih pendek dari jalanku. Saya memasang cara lama saya kalau-kalau ada yang lebih suka. Outputnya sama dengan kedua metode tersebut.

7
Buttle Butkus

Gunakan nl seperti ini:

nl filename

Dari man nl:

Tuliskan masing-masing FILE ke output standar, dengan nomor baris ditambahkan. Tanpa FILE, atau ketika FILE adalah -, baca input standar.

6
decimal

Saya melihat pertanyaan ini ketika saya sedang mencari cara untuk menghitung beberapa baris file, jadi jika Anda ingin menghitung beberapa baris file dari file .txt Anda dapat melakukan ini,

cat *.txt | wc -l

itu juga akan berjalan pada satu file .txt;)

5
talsibony

Di atas adalah metode yang disukai tetapi perintah "cat" juga dapat membantu:

cat -n <filename>

Akan menampilkan seluruh konten file dengan nomor baris.

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

Hanya mengembalikan jumlah garis

4
Umur Kontacı
cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+': Untuk mengembalikan angka digitHANYA.
4
AechoLiu

Redirection/Piping output file ke wc -l harus mencukupi, seperti berikut:

cat /etc/fstab | wc -l

yang kemudian akan memberikan no. hanya garis.

3
tk3000

Atau hitung semua baris dalam subdirektori dengan pola nama file (mis. File log dengan cap waktu di nama file):

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

Saya tahu ini old tapi masih: Hitung garis yang difilter

File saya terlihat seperti:

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

Jika saya ingin tahu berapa banyak file yang dikirim OK:

grep "OK" <filename> | wc -l

OR

grep -c "OK" filename

Saya baru saja membuat program untuk melakukan ini (dengan node)

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

hitung jumlah baris dan simpan hasil dalam variabel menggunakan perintah ini:

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

1
Konstantin F

Seperti yang dikatakan orang lain wc -l adalah solusi terbaik, tetapi untuk referensi di masa mendatang Anda dapat menggunakan Perl:

Perl -lne 'END { print $. }'

$. berisi nomor baris dan blok END akan dieksekusi di akhir skrip.

0
Majid Azimi