Si të grep Kërkimi Teksti nga PowerShell


grep është një mjet i fuqishëm për kërkimin e tekstit në Linux, por ai nuk është i disponueshëm në Windows. Ndërsa ka porte dhe zgjidhje të palëve të treta, PowerShell ofron ekuivalente të integruara të grep që do të bëjnë të njëjtën punë në skriptet tuaja.

Duke përdorur findstr për grep Search në PowerShell

Ka disa shërbime të ndryshme kërkimi në PowerShell, secila me pikat e veta të forta. Më e thjeshta është findstr, e cila është një version i ekzekutueshëm i Windows. Kjo funksionon mirë për të zëvendësuar grep për operacione të thjeshta kërkimi në vijën e komandës. Për shembull, mund të dërgoni daljen e ls në të për të gjetur përputhje.

ls | findstr "foo"

Ju gjithashtu mund të kërkoni për shumë fjalë në të njëjtën kohë, të përdorni shkronja të ngurta për të përputhur çdo gjë dhe të përdorni flamurin /R për të kaluar shprehjet e rregullta bazë.

ls | findstr /R ba[a-z]\.txt

Megjithatë, nëse doni të kërkoni në mënyrë eksplicite duke përfshirë një hapësirë, do t'ju duhet të përdorni flamurin /C: :

ls | findstr /C:"foo"

Nëse jeni mësuar me linjën e komandës Linux dhe nuk dëshironi të mbani mend një komandë të re, mund të konfiguroni grep të jetë një pseudonim i findstr, i cili do t'ju lejojë të mbani kujtesën e muskujve .

new-alias grep findstr

Përdorimi i Select-String për grep Search në PowerShell

Metoda tjetër origjinale që ofron PowerShell është Select-String cmdlet, e cila bën shumë gjëra të njëjta si findstr, por është një cmdlet PowerShell në vend të një ekzekutues të Windows.

Kjo do të thotë se do të funksionojë më mirë në skriptet PowerShell, dhe më së shumti e kthen daljen e tij si një objekt, i cili mund të printohet bukur nga PowerShell. Është gjithashtu më e lehtë për t'u përdorur në vijën e komandës, pasi plotësimi i skedës së PowerShell do të funksionojë me të.

Funksionon njësoj si findstr, dhe mund të marrë gjithashtu shkronja të egra dhe shprehje të rregullta.

ls | Select-String foo
ls | Select-String -Pattern <regexPattern>

Mund të përdorni Select-String për të marrë tekstin brenda skedarëve, duke i kaluar atij një argument -Path . Mund ta përdorni gjithashtu me të dhëna të dhëna nga cmdlet të tjera si Get-Content.

Select-String -Path ".\foo.txt" -Pattern ba.*

Nëse dëshironi ta përdorni në vijën e komandës, mund ta quani edhe pseudonimin grep për qasje të shpejtë.

remove-alias grep
new-alias grep Select-String