Páginas

2008/02/04

Bash programazioa II

ESPRESIO ERREGULARRAK
Hain ezaguna den *.txt adierazpena espresio erregularratzat jotzen dugu, hau da * karaktereak esanahia berezia du esaldi hauetan.
Adibidez, exekutatzen badugu
  • ls -l *.txt txt hizkiekin bukatzen diren fitxategiak zerrendatuko dira
  • ls -l fi*t fi hizkiekin hasi eta t-rekin bukatzen diren fitxategiak aterako dira
* karaktere horretaz gain , badaude beste espresio erregular batzuk. Hona hemen sarri erabiltzen diren zenbait.
? edozein karaktere ordezkatzen du . et?e izan daiteke etxe, etze,etse. Adibidea
  • ls -al urtea200? : urtea200a ,urtea2003 urtea200d urtea200x ,...izango da emaizta, baina ez urtea20010,...
Parentesiak [] karaktere multzo bat ordezkatzen du. Ikus dezagun adibide batekin, e[t,n]e honekin bi hitz ordezkatzen ditugu : ene , ete . ASCII karaktere multzo bat adieraz daiteke: [a-z] edozein letra ordezkatzen du; are gehiago [a-zA-Z] letra xeheak eta larriak ordezkatzeko; edo [a-zA-Z0-9] etab.
Adibidea:
  • ls -al ariketa[0-9] : ariketa0, ariketa1, ariketa2,...ariketa9 bistarauko dira, existituz gero
Hau da, [..] barruan dauden karaktereetaik BAT bakarrik hartu
Kontuan izan komandoek , ls, cp,... etab, ez dituztela espresio erregularrak ikusten, baizik eta euren emaitza. Ikus dezagun hurrengo adibidea:
  • cp fitxategi[0-4] /Home/jon
Lehenengo, espresio erregularra garatuko zen : fitxategi0 fitxategi1 fitxategi2 fitxategi3 fitxategi4 .Oduan, multzo honetako bat edo geihago existituz gero kopiatko dira adierazitako katalogora, baina bat ere ez balego emaizta ( errore mezua) izango litzateke eta honako zerbait ikusiko genuke
cp: fitxategi[0-4] : No such file or direktory.
hau da, hartzen du fitxategi[0-4] fitxategiaren izena eta, jakina ez dago laneko katalogoan.

! karaketerak "EZ HARTZEKO" balio du. Ikus dezagun adibidea:
  • ls -al [!0-9]fitxategiak
digitoz hasten ez diren fitxategiak zerrendatzeko
Informazioa geihago , hemen

No hay comentarios: