主页 > 知识库 > PowerShell实现简单的grep功能

PowerShell实现简单的grep功能

热门标签:汨罗代理外呼系统 电销机器人加盟多少钱 申请400电话有什么用 4层电梯外呼控制系统设计 宿松高德地图标注 贵阳400电话到哪里去办理 网络电话外呼系统拨号软件 400电话申请找 天津智能外呼系统排名

在PowerShell中,无法像*nix中一样使用grep命令,直接对一个目录下的所有文件进行内容查找,下面的PS脚本针对目录和文件进行了区分,借用Select-String命令,实现了内容查找,并显示查找到的文件和匹配内容所在行号。

使用的时候,只需要在shell中,输入:

"命令所在目录"\grep.ps1 "需要查找的字符串" "需要查找的路径"

param($str, $path=".\") #输入参数,默认在当前目录及其子目录下查找
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+):") #删除行号后面的内容
      {
        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]
    }
  }
}

总结

以上所述是小编给大家介绍的PowerShell实现简单的grep功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:
  • PowerShell 指令操作集合(小结)
  • 如何利用PowerShell监控Win-Server性能详解
  • PowerShell中Job相关命令及并行执行任务详解
  • 基于PowerShell在Ubuntu系统的使用详解
  • PowerShell 远程执行任务的方法步骤
  • 使用 powershell 创建虚拟机
  • 通过DNS TXT记录执行powershell
  • PowerShell 语音计算器实现代码
  • PowerShell脚本 随机密码生成器(ps随机密码生成器)
  • 原创powershell脚本小工具ctracert.ps1跟踪路由(win8以上系统)
  • powershell玩转SQL SERVER所有版本的方法
  • powershell玩转sqlite数据库详细介绍
  • PowerShell基本使用教程

标签:临沂 乌兰察布 连云港 赣州 海北 昌都 抚州 广东

巨人网络通讯声明:本文标题《PowerShell实现简单的grep功能》,本文关键词  PowerShell,实现,简单,的,grep,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《PowerShell实现简单的grep功能》相关的同类信息!
  • 本页收集关于PowerShell实现简单的grep功能的相关信息资讯供网民参考!
  • 推荐文章