Nola sorta Windows PowerShell-en fitxategi-izena Regex erabilita zati izena aldatu?
Adibide honetan, daukagu 6 data eta fitxategi izena dionean azpitik fitxategiak:
Mode LastWriteTime Luzera izena ---- ------------- ------ ---- -a ---- 10/06/2018 12:40 0 1 = 9.8.16 Bank Statement 298.67.pdf -a ---- 10/06/2018 12:40 0 2 = 9.9.16 Bank Statement 134.74.pdf -a ---- 10/06/2018 12:41 0 3 = 9.10.16 Bank Statement 123.43.pdf -a ---- 10/06/2018 12:41 0 4 = 9.11.16 Bank Statement 134.54.pdf -a ---- 10/06/2018 12:41 0 5 = 9.12.16 Bank Statement 157.98.pdf -a ---- 10/06/2018 12:41 0 6 = 9.1.17 Bank Statement 123.45.pdf
hemen, filename serieko bat dauka # hasieran, jarraian = arabera, jarraian 'Bank Statement arabera’ jarraian adierazpen oreka amaieran.
fitxategiok Izan Kreditu txartela adierazpenak eta hitza 'Bank daude’ beharretara ordezkatuko da hitzak 'Kreditu txartela' moduan. filename gainerako guztiak berdin jarraituko luke.
Hori lortzeko asmoz, Windows PowerShell erabili behar izango dugu Regex ekin.
banku-adierazpenak guztiak zerrendatzeko, erabiltzen dugun ls komandoa, Orduz kanalizazio irteera
ls | ren -newname {$_.name -replace('(.+)Bank(.+)','$1Credit Card$2')}
Izena aldatu komando fitxategiak izenez aldatzeko kanalizazio ondoren erabiltzen da. $_ irteera antolatzen kanalizazio aurretik objektu da, eta izena jabetzakoak erabiltzen ari gara $_ Objektu. -replace PowerShell kateak erabiltzen da, bertan kate berri batekin kate bat ordezkatzen du. -replace eramango funtzioa da 2 parametroak. 1go parametroak zaharraren katea ordeztu nahi duguna da, eta 2. parametroa kate berria da.
Regex talde atzemateko aukera ematen kate zatiak mantentzeko gurekin. Regex in, ezer parentesi jarri harrapatu beranduago erabiltzeko. adibidez. (.+)Bank(.+) ezer harrapatzen aurretik eta 'Bank' ondoren. harrapatu zati horiek erabili ahal izango dugu, erabiliz $ eta zenbaki bat. 1go parentesi sartu harrapatzen $1 eta 2. parentesi sartu harrapatzen $2 etab…
1go parametroan, zaharraren katea ordeztu nahi dugu zehaztu dugu, eta, aldi berean, kate zati hori mantendu nahi dugu harrapatzeko dugu (capture). 2. Parametro In, kate berria harrapatu zati hori mantendu nahi dugu erabiltzen du, baita kate berri bera bezain adibidez. '$1Credit Card$2'.
Emaitza:
Mode LastWrite Time Luzera izena ---- --------- ---- ------ ---- -a ---- 10/06/2018 12:40 0 1 = 9.8.16 Kreditu txartelaren adierazpena 298.67.pdf -a ---- 10/06/2018 12:40 0 2 = 9.9.16 Kreditu txartelaren adierazpena 134.74.pdf -a ---- 10/06/2018 12:41 0 3 = 9.10.16 Kreditu txartelaren adierazpena 123.43.pdf -a ---- 10/06/2018 12:41 0 4 = 9.11.16 Kreditu txartelaren adierazpena 134.54.pdf -a ---- 10/06/2018 12:41 0 5 = 9.12.16 Kreditu txartelaren adierazpena 157.98.pdf -a ---- 10/06/2018 12:41 0 6 = 9.1.17 Kreditu txartelaren adierazpena 123.45.pdf
