使用 powershell 的 grep 过滤文本

有个log文件,大小在4M左右,要求找出里面耗时超过100s 的记录。首先想到了强大的 grep ,那么就搞起。
先在网上找一下资料,这篇文章,有几种方式:

第一种:
Get-content somefile.txt|findstr "someregexp"
Get-content可以换成cat,Powershell已经给他们做了个别名,可真是体谅sheller。
这种方法算是commandline和Powershell混合,因为findstr是命令行工具,并不是Powershell的cmdlet。
第二种:
cat somefile.txt | where { $
-match "some_regexp"}
纯种Powershell实现了,利用了where过滤
第三种:
Select-String "some_regexp" somefile.txt
直接用Select-string的实现。

经过测试,最后写出的 powershell 命令如下:

cat .\log.log|where {$_ -match "\d{3,}\.\d{2,}s"} >>result.log

用了 where 这个, 这个能使用正则, findstr 命令不行。里面的正则匹配字符串 "\d{3,}.\d{2,}s" 也很简单了,"3个数字.2个数字以上s "的意思。

最后: 过滤出来的结果放入 result.log

17:05:14,884 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor7 DEBUG StrategyActionHelper: - getStrategyInvoiceMap finished ... Consumed time:191.028s
17:05:14,889 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG StrategyActionHelper: - getStrategyInvoiceMap finished ... Consumed time:191.04s
17:07:19,112 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor7 DEBUG StrategyActionHelper: - setListStrategyAttributes finished ... Consumed time:379.082s
17:07:20,106 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG StrategyActionHelper: - setListStrategyAttributes finished ... Consumed time:381.021s
17:07:37,449 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG StrategySearchAction: - setListStrategyAttributes finished ... Consumed time:398.364s
17:25:26,773 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG cl: - build table data in getClientContractElement finished ... Consumed time:1064.296s
17:25:27,328 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG cl: - getClientContractElement finished ... Consumed time:1064.858s
17:25:27,328 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG cl: - buildGTReport finished ... Consumed time:1064.87s Free memory: 176198

注意:
powershell里的编码是 GB K的,不是 UTF8,如果要过滤中文字符,简单的方法是先将 UTF8 编码的文件转换为 ANSI 编码。

转载于:https://www.cnblogs.com/myfjd/p/4076256.html

使用 powershell 的 grep 过滤文本相关推荐

  1. 文本三剑客——grep过滤

    文本三剑客:awk(截取).grep(过滤).sed(替换) 目录 1.grep的基本使用命令 2.grep使用正则表达式 2.1 正则的定义 2.2 通配符 1.grep的基本使用命令 grep:过 ...

  2. 利用grep进行文本处理

    利用grep进行文本处理 背景 相关命令 思路 过程 1.首先用grep过滤出数据 2.拆完了肯定是要匹配下数据量是否能对 3.发现数据对应不上 背景 需要将一份百万的数据按照一定的规格(开头以地市字 ...

  3. linux命令grep如何使用,Linux下如何使用grep搜索文本

    Linux下如何使用grep搜索文本 2018-11-30 一.什么是grep grep是一种文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep是几个单词的缩写,g(globa ...

  4. linux之使用grep搜索文本

    linux之使用grep搜索文本 -- Page 79 在文件夹中查找匹配内容,并显示行号: grep -r -n "要查找的内容" 目录名 在文件夹中统计包含匹配内容的行号: g ...

  5. [20170828]grep过滤技巧.txt

    [20170828]grep过滤技巧.txt --//经常使用grep过滤显示信息. #  ps -ef |grep oraagent oracle    13416      1  0  2016 ...

  6. linux中的grep 过滤查找及“|”管道符、gzip/gunzip 压缩、zip/unzip 压缩

    1.7.3 grep 过滤查找及"|"管道符 管道符,"|",表示将前一个命令的处理结果输出传递给后面的命令处理 grep 选项 查找内容 源文件 选项 功能 ...

  7. java 双斜杠变单斜杠_java 过滤文本特殊字符 以及单斜杠替换成双斜杠 | 学步园...

    在读取mysql数据库时,数据库中的文件路径是 由于其中包含单斜杠,我们在写入到另外的表中时,总是被莫名其妙的截断.即使将该字段的类型设置成longtext 都不行 于是,我们在读取之后使用如下方法. ...

  8. linux grep过滤命令

    grep过滤命令 grep 单个过滤 logcat grep ABC grep -E 多个条件过滤 logcat grep -E "A|B|C" file.txt 满足任意条件(A ...

  9. python过滤文本中的emoji表情

    python过滤文本中的emoji表情 最近在处理文本内容的时候发现很多文本会有特色表情,由于占位较多,想着能过滤掉就好,也不影响文本内容含义,并且对后续做语义分析也有帮助. 网上搜了下,总体还是通过 ...

最新文章

  1. 中方控股的Arm合资公司开始运营,还要在国内IPO
  2. XML文档DOM、SAX、STAX解析方式
  3. 用户不见了_屋面瓦/外墙板再也看不见螺丝打胶了
  4. 牛客题霸 [进制转换] C++题解/答案
  5. 计算机操作系统(9):深入理解B/S与C/S架构
  6. 回拨系统服务器,CISCO接入服务器回拨功能的实现
  7. 如何在Mac上管理辅助功能键盘的选项?
  8. P5018 对称二叉树
  9. java版spring cloud+spring boot+redis社交电子商务平台-docker-feign配置(五)
  10. Docker本地镜像
  11. 云宏武汉大学国际软件学院桌面云
  12. 苹果自带浏览器显示无法连接服务器,为什么苹果自带浏览器无法连接到服务器怎么解决...
  13. oracle 更改归档位置,oracle更改归档路径
  14. 计算机基本组成及功能
  15. (在ObjectARX中使用MFC)
  16. RDKit入门教程(2)——利用RDKit获取分子指纹
  17. 年金、净现值NPV、IRR、现值PV、终值FV、EAR等常见概念
  18. 【Python】爬虫-Xpath
  19. Excel 2010 SQL应用064 ISNULL函数
  20. mysql like %keyword%不走索引替代方法--转[足球带我奔跑]

热门文章

  1. tempdb(转载)
  2. 在线黑客帝国文字效果生成工具
  3. JavaScript 获取当前时间戳的三种方式
  4. FFmpeg Android 学习(一):Android 如何调用 FFMPEG 编辑音视频
  5. PHP Excel导入数据到MySQL数据库
  6. bzoj2588: Spoj 10628. Count on a tree 主席树
  7. FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户
  8. Xceed WinForm数据表格控件Xceed Grid For .NET详细介绍
  9. Wine QQ2012 笔记
  10. 正确的CentOS系统配置