PowerShell實現(xiàn)簡單的grep功能
在PowerShell中,無法像*nix中一樣使用grep命令,直接對一個目錄下的所有文件進行內(nèi)容查找,下面的PS腳本針對目錄和文件進行了區(qū)分,借用Select-String命令,實現(xiàn)了內(nèi)容查找,并顯示查找到的文件和匹配內(nèi)容所在行號。
使用的時候,只需要在shell中,輸入:
"命令所在目錄"\grep.ps1
"需要查找的字符串" "需要查找的路徑"
param($str, $path=".\") #輸入?yún)?shù),默認(rèn)在當(dāng)前目錄及其子目錄下查找 if([String]::IsNullOrEmpty($str)){ Write-Output "Caution: input string is empty" exit } $path = Resolve-Path $path #獲取絕對路徑 if([System.IO.Directory]::Exists($path)){ $subPathList = Get-ChildItem $path -Recurse *.* #獲取所有子目錄 foreach($subPath in $subPathList){ $subPath = $subPath.FullName if([System.IO.Directory]::Exists($subPath)){ Continue } $foundArr = Select-String -path $subPath -Pattern $str foreach($found in $foundArr) { if($found -match "(.+:\d+):") #刪除行號后面的內(nèi)容 { Write-Output $matches[1] } } } }elseif([system.IO.File]::Exists($path)){ $foundArr = Select-String -path $path -Pattern $str foreach($found in $foundArr) { if($found -match "(.+:\d+):") { Write-Output $matches[1] } } }
總結(jié)
以上所述是小編給大家介紹的PowerShell實現(xiàn)簡單的grep功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Shell腳本實現(xiàn)復(fù)制文件到多臺服務(wù)器的代碼分享
這篇文章主要介紹了Shell腳本實現(xiàn)復(fù)制文件到多臺服務(wù)器的代碼分享,用在多機集群環(huán)境中非常方便,需要的朋友可以參考下2014-09-09Linux用戶配置sudo權(quán)限(visudo)的方法
下面小編就為大家?guī)硪黄狶inux用戶配置sudo權(quán)限(visudo)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02詳解Linux Shell 實現(xiàn)一個獲取任意位數(shù)的隨機密碼的腳本
這篇文章主要介紹了詳解Linux Shell 實現(xiàn)一個獲取任意位數(shù)的隨機密碼的腳本的相關(guān)資料,本文提供實現(xiàn)方法及實現(xiàn)代碼,需要的朋友可以參考下2017-08-08