Puncte:6

Cum pot număra fiecare tip de caracter (și să le însumez) într-un fișier text?

drapel gs

Mă întrebam doar dacă cineva ar putea să-mi spună cum să număr aparițiile fiecărui caracter diferit dintr-un fișier text și, de asemenea, un total al tuturor aparițiilor tuturor celor adăugate la sfârșit.

Încerc doar să învăț procesul pentru propriile mele cunoștințe.

waltinator avatar
drapel it
Sau vrei "42 a, 33 b, 27 c, ..."? Probabil că este ușor în `perl`.
Puncte:7
drapel jp

Numărare generală cu WC

Poți să folosești WC pentru a număra linii, cuvinte, caractere, octeți ... dar nu enumera numărul pentru fiecare caracter separat. Vedea om wc.

Numără numărul fiecărui caracter separat

Dacă doriți să enumerați numărul pentru fiecare caracter separat, puteți

  • începeți prin a tipări fiecare caracter pe o linie separată cu grep
  • apoi sortează-le cu fel
  • apoi folosiți unic pentru a tipări numărul de fiecare fel

Exemple

Exemple presupunând că aveți și un link către un fișier de dicționar (listă de cuvinte) la /usr/share/dict/words

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

Există mai mulți octeți decât caractere, deoarece unele caractere constau din mai mult de un octet (de exemplu, ultimele [umlaut] caractere din lista de mai jos).

  $ < /usr/share/dict/words grep -o '.' |sort |uniq -c
  29105 '
  65630 a
   1438 A
     12 á
      6 â
  14654 b
   1481 B
  31144 c
   1636 C
      5 §
  28422 d
    844 D
  90579 e
    653 E
    148 é
     29 è
      6 ª
  10380 f
    538 F
  22501 g
    852 G
  19325 h
    919 H
  68343 i
    361 I
      2 Ã
   1482 j
    560 J
   8188 k
    680 K
  41512 l
    942 L
  21488 m
   1768 M
  58328 n
    587 N
      8 ±
  50187 o
    409 O
     10 ³
      2 ô
  21691 str
   1049 p
   1492 q
     72 Î
  58312 r
    782 R
  92909 s
   1656 S
  53309 t
    908 T
  26773 u
    140 U
      3 û
   7870 v
   7281 w
    352 V
    533 W
   2139 x
     44 X
  12896 y
    154 Y
     14 ¼
   3266 z
    161 Z
      3 å
      2 Ã 
      7 ä
     17 ö
phuclv avatar
drapel sd
nu aveți nevoie de redirecționare pentru a lucra cu grep, deoarece poate citi fișierul direct. De fapt, prin specificarea fișierului se poate face multe optimizări care nu pot fi făcute cu un flux
Puncte:5
drapel cn

Există o modalitate foarte simplă de a număra fiecare caracter dintr-un fișier text.Am folosit propria ta întrebare ca fișier text (numit countc) și am testat acest cod:

grep '.' -o countc | awk '{a[$1]++} END {pentru (i în a) tipăriți i,a[i]}'

si asta e ceea ce primesti:

' 1
h 9
tu 6
 46
v 1
eu 7
j 2
w 5
k 1
x 1
l 10
y 4
m 3
n 16
un 14
. 2
o 19
p 1
c 12
eu 2
d 9
r 14
e 28
f 8
s 8
g 5
t 21

tablourile awk sunt foarte utile pentru astfel de operațiuni.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.