ਕਿਸ ਨੂੰ ਬੈਚ ਨੂੰ Windows PowerShell ਵਿਚ ਫਾਇਲ regex ਵਰਤ ਦਾ ਹਿੱਸਾ ਬਦਲੋ?

ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਸਾਡੇ ਕੋਲ 6 ਮਿਤੀ ਅਤੇ ਹੇਠ ਫਾਇਲ ਦੇ ਨਾਲ ਹੇਠ ਫਾਇਲ ਨੂੰ:

ਮੋਡ LastWriteTime ਦੀ ਲੰਬਾਈ ਦਾ ਨਾਮ
----                -------------         ------ ----
-ਨੂੰ ਇੱਕ ----       10/06/2018     12:40              0 1 = 9.8.16 ਬਕ ਬਿਆਨ 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 ਬਕ ਬਿਆਨ 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 ਬਕ ਬਿਆਨ 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 ਬਕ ਬਿਆਨ 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 ਬਕ ਬਿਆਨ 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 ਬਕ ਬਿਆਨ 123.45.pdf

ਇਥੇ, ਫਾਇਲ ਨੂੰ ਇੱਕ ਸੀਰੀਅਲ ਸ਼ਾਮਿਲ ਹੈ # ਸੁਰੂ ਦੇ ਵਿੱਚ, = ਬਾਅਦ, 'ਬਕ ਬਿਆਨ ਦੇ ਬਾਅਦ’ ਬਿਆਨ ਸੰਤੁਲਨ ਦੇ ਅੰਤ ਦੇ ਬਾਅਦ.

ਇਹ ਫਾਇਲ ਇਸ ਤੱਥ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ ਅਤੇ ਸ਼ਬਦ 'ਬਕ ਵਿੱਚ ਹਨ,’ ਸ਼ਬਦ 'ਕ੍ਰੈਡਿਟ ਕਾਰਡ' ਨਾਲ ਤਬਦੀਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ. ਸਾਰੇ ਫਾਇਲ ਦੇ ਬਾਕੀ ਉਸੇ ਰਹਿਣਾ ਚਾਹੀਦਾ ਹੈ.

ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਸਾਨੂੰ regex ਦੇ ਨਾਲ Windows PowerShell ਵਰਤ ਕੀਤਾ ਜਾਵੇਗਾ.

ਸਾਰੇ ਬਕ ਬਿਆਨ ਦੀ ਸੂਚੀ ਵੇਖਣ ਲਈ, ਸਾਨੂੰ ਵੀ ਵਰਤ ls ਹੁਕਮ, ਫਿਰ ਪਾਈਪ ਆਉਟਪੁੱਟ

ls | ਬੱਚੇ -newname {$_.name -replace('(.+)ਬਕ(.+)','$1Credit Card$2')}

ਬਦਲਣ ਦਾ ਹੁਕਮ ਰੱਖਿਆ ਕਰਨ ਲਈ ਪਾਈਪ ਬਾਅਦ ਵਰਤਿਆ ਗਿਆ ਹੈ. $_ ਇਕਾਈ ਹੈ, ਜੋ ਕਿ ਪਾਈਪ ਅੱਗੇ ਆਉਟਪੁੱਟ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਸਾਨੂੰ ਦੇ ਨਾਮ ਦੀ ਸੰਪਤੀ ਵਰਤ ਰਹੇ ਹੋ $_ ਇਕਾਈ. -replace PowerShell ਵਿਚ ਸਤਰ 'ਤੇ ਵਰਤਿਆ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਨਵ ਸਤਰ ਦੇ ਨਾਲ ਇੱਕ ਸਤਰ ਨੂੰ ਤਬਦੀਲ. -replace ਇੱਕ ਫੰਕਸ਼ਨ ਹੈ, ਜੋ ਕਿ ਲੱਗਦਾ ਹੈ ਹੈ 2 ਪੈਰਾਮੀਟਰ. ਨੂੰ 1 ਪੈਰਾਮੀਟਰ ਪੁਰਾਣੇ ਸਤਰ, ਜੋ ਕਿ ਸਾਨੂੰ ਨੂੰ ਤਬਦੀਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਹੈ ਅਤੇ 2 ਪੈਰਾਮੀਟਰ ਨਵ ਸਤਰ ਹੈ.

Regex ਵਿੱਚ ਗਰੁੱਪ ਦੇ ਜਿੱਤਣ ਸਾਨੂੰ ਸਤਰ ਦੇ ਹਿੱਸੇ ਰੱਖਣ ਲਈ ਸਹਾਇਕ ਹੈ. regex ਵਿੱਚ, ਬਰੈਕਟ ਵਿੱਚ ਪਾ ਕੁਝ ਵੀ ਬਾਅਦ ਵਿੱਚ ਵਰਤਣ ਲਈ ਕਬਜ਼ਾ ਕਰ ਰਿਹਾ ਹੈ. ਉਦਾਹਰਨ ਲਈ. (.+)Bank(.+) ਅੱਗੇ ਹੈ ਅਤੇ ਅੱਖਰ 'ਬਕ' ਦੇ ਬਾਅਦ ਕੁਝ ਵੀ ਹਾਸਲ. ਸਾਨੂੰ ਇਹ ਕਬਜ਼ਾ ਕਰ ਹਿੱਸੇ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹੋ, ਵਰਤ ਕੇ $ ਅਤੇ ਇੱਕ ਨੰਬਰ. 1 ਦਾ ਬਰੈਕਟ ਵਿੱਚ ਹਾਸਲ $1 ਅਤੇ 2 ਬਰੈਕਟ ਵਿੱਚ ਹਾਸਲ $2 ਆਦਿ…

ਨੂੰ 1 ਪੈਰਾਮੀਟਰ ਵਿੱਚ, ਸਾਨੂੰ ਪੁਰਾਣੇ ਸਤਰ, ਜੋ ਕਿ ਸਾਨੂੰ ਨੂੰ ਤਬਦੀਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਨੂੰ ਨਿਰਧਾਰਿਤ, ਅਤੇ ਉਸੇ ਵੇਲੇ 'ਤੇ ਸਾਨੂੰ ਸਤਰ ਦੇ ਹਿੱਸੇ, ਜੋ ਕਿ ਸਾਨੂੰ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਕੈਪਚਰ (ਕੈਪਚਰ). 2 ਪੈਰਾਮੀਟਰ ਵਿੱਚ, ਨਵ ਸਤਰ ਤੇ ਕਬਜ਼ਾ ਹਿੱਸੇ ਕਿ ਸਾਨੂੰ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਵਰਤਦਾ ਹੈ, ਦੇ ਨਾਲ ਨਾਲ ਨਵ ਸਤਰ ਨੂੰ ਆਪਣੇ ਆਪ ਨੂੰ ਦੇ ਤੌਰ ਉਦਾਹਰਨ. '$1Credit Card$2'.

ਨਤੀਜਾ:

ਮੋਡ LastWrite ਟਾਈਮ ਦੀ ਲੰਬਾਈ ਦਾ ਨਾਮ
----       ---------      ----            ------   ----
-ਨੂੰ ਇੱਕ ----     10/06/2018     12:40              0 1 = 9.8.16 ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਬਿਆਨ 123.45.pdf