首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何匹配下划线模式后面的一行

如何匹配下划线模式后面的一行
EN

Stack Overflow用户
提问于 2015-03-30 17:27:50
回答 2查看 568关注 0票数 0

我有一个包含大量数据的文件,如下所示:

代码语言:javascript
复制
______________________________________________________________________

.         1-9/16 TCS DRILL                  

.          CUT = +2.685 / O/A = -2.685
.                +2.685 /       -2.685
.                +3.935 /       -3.935
______________________________________________________________________

.         1-11/32 TCS DRILL                  

.          CUT = +0.9 / O/A = -3.237
.                +0.9 /       -3.237
.                +0.9 /       -4.487
___________________________________________________________________

.         1-11/32 TCS DRILL                  

.          CUT = +5.699 / O/A = -5.699
__________________________________________________________________

.         1-1/8 TCS DRILL                  

.          CUT = +1.553 / O/A = -1.553
.                +2.338 /       -2.338
.                +2.513 /       -2.513 

我需要做的是在每个"_______“(下划线)之后获取第一行文本,

1-9/16 TCS钻机

1-11/32 TCS钻机

1-11/32 TCS钻机

.

如何在powershell中指定模式以匹配使用get-content或get-childitem项的行?

我可以在没有任何字符"=“、"+”、"-“的情况下匹配这些行,但这种模式不准确,也不起作用.

代码语言:javascript
复制
$file = 'C:\test\001.txt'

Get-Childitem $file | select-string -pattern '=','+','-' -notmatch
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-30 18:17:24

我会在您的示例数据(文本文件$file)中尝试这样的方法。

代码语言:javascript
复制
(Get-Content -Raw $file) -split "_+" | 
    Where-Object{$_} | 
    ForEach-Object{$_ -split "`r`n" | Select -Index 2}

只需一次使用-Raw读取整个文件,然后在下划线组上对文件进行-split。使用Where-Object过滤空条目,因为在文件开始时会有一个条目。

对于从该过程中获得的每个块,我们将其拆分到换行符上。由于前2行是空空间,所以我们使用-Index获取包含所需内容的第一行数据。

样品输出

代码语言:javascript
复制
.         1-9/16 TCS DRILL                  
.         1-11/32 TCS DRILL                  
.         1-11/32 TCS DRILL                  
.         1-1/8 TCS DRILL 

为了删除前导周期和下面的空格,我们可以对循环做一个小的更新

代码语言:javascript
复制
ForEach-Object{($_ -split "`r`n" | Select -Index 2) -replace "^\.\s+"}
票数 1
EN

Stack Overflow用户

发布于 2015-03-30 17:55:08

你粘贴它的方式,至少,线条是下划线_,而不是连字符-。尝试将'_'添加到不匹配的事物列表中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29352488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档