Թե ինչպես կարելի է խմբաքանակի վերանվանել մասը ֆայլի մեջ Windows PowerShell օգտագործելով REGEX?

Այս օրինակում, մենք ունենք 6 ֆայլերը Ստորեւ հետ ամսաթիվը եւ ֆայլի ստորեւ:

Ռեժիմ LastWriteTime Length անվանումը
----                -------------         ------ ----
-ա ----       10/06/2018     12:40              0 1 = 9.8.16 Bank հայտարարությունը 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 Bank հայտարարությունը 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 Bank հայտարարությունը 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 Bank հայտարարությունը 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 Bank հայտարարությունը 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 Bank հայտարարությունը 123.45.pdf

այստեղ, ֆայլի անունը պարունակում է սերիական # սկզբում, որին հաջորդում է =, հաջորդում են 'բանկի հայտարարությունը’ որին հաջորդում է ավարտին հայտարարության հավասարակշռության.

Այդ ֆայլերը են այն փաստը, վարկային քարտ հաշվետվությունների եւ բառը Բանկ’ հարկավոր է գնի փոխարինվել բառերի Credit Card ». Բոլոր մնացած ֆայլի պետք է մնա նույնը.

Որպեսզի հասնել այս, we will be using Windows PowerShell with Regex.

Ցուցակին բոլոր բանկային հայտարարություններով, Մենք օգտագործել ls հրաման, ապա խողովակ որ արտադրանքը

LS | Ren -newname {$_.name -replace('(.+)բանկ(.+)','$ 1Credit քարտերի $ 2')}

Վերանվանելու հրաման օգտագործվում հետո խողովակի վերանվանել ֆայլերը. $_ օբյեկտ է, որ կրում է արտադրանքի մինչեւ խողովակի, եւ մենք օգտագործում են անունը գույքը, որ $_ օբյեկտ. -replace is used on strings in PowerShell, որը փոխարինում է տողը մի նոր պարանի. -replace մի գործառույթ, որը տեւում է 2 պարամետրեր. 1-ին ցուցանիշ է հին տողը, որ մենք ուզում ենք փոխել եւ 2-րդ պարամետր է նոր տողը.

Capturing խմբերը REGEX թույլ է տալիս մեզ պահելու մասերը պարանի. ի REGEX, ինչ-որ բան դնում փակագծերի է գրավել է օգտագործել ավելի ուշ. օրինակ,. (.+)Bank(.+) գրավում բան առաջ եւ հետո հերոսների Բանկ. Մենք կարող ենք օգտագործել այդ գերեվարած մասերը, օգտագործելով $ եւ մի շարք. 1-ին փակագիծ գրավում մեջ $1 եւ 2-րդ փակագիծ գրավում մեջ $2 եւ այլն…

1 - ին պարամետր, մենք նշեք հին string, որ մենք ցանկանում ենք փոխարինել, եւ միեւնույն ժամանակ, մենք գրավել մասերը պարանի, որ մենք ցանկանում ենք պահպանել (գրավում). 2-րդ պարամետր, նոր լարային օգտագործում է գրավել մասերը, որոնք մենք ցանկանում ենք պահպանել, ինչպես նաեւ նոր լարային ինքնին օրինակ. '$1Credit Card$2'.

արդյունք:

Ռեժիմ LastWrite Ժամանակը Length անվանումը
----       ---------      ----            ------   ----
-ա ----     10/06/2018     12:40              0 1 = 9.8.16 Credit Card հայտարարությունը 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Credit Card հայտարարությունը 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Credit Card հայտարարությունը 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Credit Card հայտարարությունը 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Credit Card հայտարարությունը 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Credit Card հայտարարությունը 123.45.pdf

Թողնել Պատասխանել