Điểm:6

Làm cách nào tôi có thể đếm từng loại ký tự (và tổng số ký tự) trong tệp văn bản?

lá cờ gs

Tôi chỉ tự hỏi liệu có ai có thể cho tôi biết cách đếm số lần xuất hiện của từng ký tự khác nhau trong một tệp văn bản và tổng số lần xuất hiện của mọi thứ được cộng lại với nhau ở cuối không.

Tôi chỉ đang cố gắng tìm hiểu quy trình cho kiến ​​​​thức của riêng mình.

waltinator avatar
lá cờ it
Hay bạn muốn "42 a, 33 b, 27 c, ..."? Nó có thể dễ dàng trong `perl`.
Điểm:7
lá cờ jp

Tính chung với nhà vệ sinh

Bạn có thể dùng nhà vệ sinh để đếm dòng, từ, ký tự, byte... chứ không liệt kê số đếm cho từng ký tự riêng biệt. Nhìn thấy người đàn ông wc.

Đếm số của từng ký tự riêng biệt

Nếu bạn muốn liệt kê số cho từng ký tự riêng biệt, bạn có thể

  • bắt đầu bằng cách in từng ký tự thành một dòng riêng biệt với tiếng kêu
  • sau đó sắp xếp chúng với loại
  • sau đó sử dụng duy nhất để in số lượng của mỗi loại

ví dụ

Các ví dụ giả định rằng bạn cũng có liên kết đến tệp từ điển (danh sách từ) tại /usr/share/dict/words

$ wc --lines --words --chars --bytes /usr/share/dict/words
102305 102305 971304 971578 /usr/share/dict/words

Có nhiều byte hơn ký tự vì một số ký tự bao gồm nhiều hơn một byte (ví dụ: ký tự [âm sắc] cuối cùng trong danh sách bên dưới).

  $ < /usr/share/dict/words grep -o '.' |sắp xếp |uniq -c
  29105'
  65630 một
   1438 A
     12 á
      6 â
  14654b
   1481 B
  31144c
   1636C
      5 ç
  28422 d
    844D
  90579 e
    653 Đ
    148 é
     29 è
      6 ê
  10380f
    538 F
  22501 gam
    852 gam
  19325 giờ
    919H
  68343 tôi
    361 tôi
      2 à
   1482 j
    560J
   8188k
    680K
  41512 tôi
    942 Lít
  21488 mét
   1768 M
  58328 n
    587 N
      8 ±
  50187 o
    409 Ô
     10 ó
      2 ô
  21691 p
   1049P
   1492q
     72 Q
  58312 r
    782R
  92909 giây
   1656S
  53309 tấn
    908T
  26773 bạn
    140 U
      3 Ã »
   7870v
   7281 w
    352 v
    533 W
   2139 x
     44X
  12896 năm
    154 năm
     14 ü
   3266z
    161Z
      3 å
      2 à 
      7 ä
     17 ö
phuclv avatar
lá cờ sd
bạn không cần chuyển hướng để làm việc với grep vì nó có thể đọc tệp trực tiếp. Trên thực tế, bằng cách chỉ định tệp, nó có thể thực hiện nhiều tối ưu hóa không thể thực hiện được với luồng
Điểm:5
lá cờ cn

Có một cách rất đơn giản để đếm từng ký tự trong một tệp văn bản.Tôi đã sử dụng câu hỏi của riêng bạn dưới dạng tệp văn bản (được gọi là Countc) và đã kiểm tra mã này:

grep '.' -o đếmc | awk '{a[$1]++} END {for (i in a) print i,a[i]}'

và đây là những gì bạn nhận được:

' 1
giờ 9
bạn 6
 46
câu 1
tôi 7
j 2
w 5
k 1
x 1
tôi 10
năm 4
m 3
thứ 16
một 14
. 2
o 19
trang 1
c12
tôi 2
câu 9
r 14
e 28
f8
s 8
g5
t21

mảng awk rất hữu ích cho các hoạt động như vậy.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.