Píosaí liom in áiteanna eile:

2020-10-12

Asarlaíocht Khevin, athuair.


Sampla ana mhaith is ea an méid seo thús de phíblíne *nix. Feidhmíonn go leor, leor cláracha de chuid Unix mar scagairí ar chineáil éagsúla téacs, ag déanamh athrú ar an ionchur agus á sheoladh chuig an aschur. Feidhmíonn an siombal "|" már phíobán a nascann aschur an ordú ar chlé le hionchur an ordú ar dheis.

egrep -i -o 'ch?[oó](mh?)?gh?[a-z]*r[a-z]*d[a-z]*s' sonrai/ga-tweets.txt | tolow | sed 's/^ch/c/' | sort | uniq -c | sort -r -n | sed 's/^ *[0-9]*//' | tr "\n" " " | fmt


Clár is ea "grep" - seasann an ainm do "globally search for a regular expression and print matching lines", bunaithe ar an ordú g/re/p atá san eagarthóir luath ed. Nuair a chuirtear "e" roimhe, is dóigh é chun an leagan de na slonn rialta atá le húsáid a sainmhiniú. Is éard atá i gceist le "slonn rialta" ná pátrún chun teaghráin ar leith a lorg. Sa chás seo is 

ch?[oó](mh?)?gh?[a-z]*r[a-z]*d[a-z]*s

an slonn rialta. An t-oideas atá i gceist ná:

  • lorg "c";
  • leanta ag ar a mhéid "h" amháin;
  • leanta ag "o" nó "ó";
  • leanta ag "m" agus ar a mhéid "h" amháin, uair amháin ar a mhéid;
  • leanta ag "g" agus ar a mhéid "h" amháin;
  • leanta ag líon anaithnid litreacha idir a agus z, ceann ar bith san áireamh  => [a-z]* ;
  • leanta ag r;
  • leanta ag [a-z]* arís;
  • leanta ag d;
  • leanta ag [a-z]* arís;
  • leanta ag s.
Maidir le [a-z] fuair mé soiléiriú ó Kevin. Tá rud ar a dtugtar logchaighdeán ann, agus bíonn tionchar aige sin ar conas mar a chaitear le litreacha, airgeadra agus am.

Ar ríomhaire Kevin is ga_IE.utf8 (Gaeilge, Éire, ionchodú Unicode de réir UTF-8) atá roghnaithe, mar sin is ionann [a-z] agus aon litir a úsáidtear as Gaeilge. Ach san ceann bunaidh "C" ní bheadh i gceist le [a-z] ach na litreacha sin amháin. Léiríonn an méid thíos seo - le ga_IE.utf8 aimsíonn [a-z] í; gan é ní haimsíonn.

$ echo "Caoimhín" | egrep '^Caoimh[a-z]n'
Caoimhín
$ echo "Caoimhín" | LC_ALL=C egrep '^Caoimh[a-z]n'
$

Ciallaíonn "-i" go ndéantar neamhaird ar chás na gcarachtair; agus ciallaíonn "-o" nach mbeidh ach an méid a mheatsáileann san aschur. Mar sin, aschur

egrep -i -o 'ch?[oó](mh?)?gh?[a-z]*r[a-z]*d[a-z]*s' sonrai/ga-tweets.txt

ná na focail ar fad sna giolcanna atá de réir an oidis.

Cuireann tolow iad ar fad i gcás íochtar.

Tá slónn rialta i gceist le

sed 's/^ch/c/'

freisin.
Eagarthóir is ea "sed" - "stream editor". An oideas atá i gceist an seo ná "c" a chuir in áit "ch" chomh fada is atá an "ch" ag tús "^" an teaghráin. Déanann sin cúraim de na leagancha séimhithe.

Déanann sort mar a shamhlófa, na línte a chuir in oird aibítre.

An toradh ar "uniq -c" ná na línte uathúla agus áireamh gach líne acu rompu.

Cuireann "sort -r -n" an toradh sin in ord uimhríochta, ó ard go híseal (i. r = droim ar ais)

sed 's/^ *[0-9]*//': faigh réidh leis na huimhreacha.

tr "\n" " ": cuir spás amháin in áit deireadh líne

fmt: déan formaidiú ar an iomlán san slí is éifeachtaí. Agus sin agaibh an liosta!