删除关键字后的所有内容 [英] delete everything after keyword

查看:116
本文介绍了删除关键字后的所有内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用Compare-Object合并到文件,并且得到了这样的文件:

I try to merge to files with Compare-Object and I got a file like this:

Number=5
Example=4
Track=1000
Date=07/08/2018 19:51:16
MatCaissierePDAAssoc=
NomImpPDAAssoc=
TpeForceLectPan=0
Number=1
Example=1
Track=0
Date=01/01/1999

您可以看到它以Number = 1重复.除非具有不同的值. 我想删除关键字"Number"和关键字本身之后的所有内容(所有内容不仅表示"= 1").

You can see it repeats with Number=1. Except with a different value. I would like to delete everything (everything means not only "= 1") after my keyword "Number" and my keyword itself.

这是我到目前为止所做的:

This is what I did so far:

$files = Get-ChildItem "D:\all"
foreach ($file in $files) {
    $name = dir $file.FullName | select -ExpandProperty Name

    Compare-Object -ReferenceObject (Get-Content D:\original\test.ini) -DifferenceObject (Get-Content $file.FullName) -PassThru |
        Out-File ('D:\output\' + $name)
}

我想删除所有带有跟踪"和日期"的行.

And I would like to delete all lines with "Track" and "Date".

我的结果应如下所示:

Number=5
Example=4
MatCaissierePDAAssoc=
NomImpPDAAssoc=
TpeForceLectPan=0

实际上,我需要删除文件中的双键.

In fact I need something to delete double keys in my file.

推荐答案

这可能有帮助:

# read existing file
$fileContent = Get-Content C:\tmp\so01.txt

# iterate over lines
foreach($line in $fileContent) {
  # filter lines beginning with 'Track' or 'Number'
  if((-not $line.StartsWith('Track')) -and (-not $line.StartsWith('Number'))) {
    # output lines to new file
    $line | Add-Content C:\tmp\so02.txt
  }
}

C:\tmp\so02.txt的内容:

Example=4
Date=07/08/2018 19:51:16
MatCaissierePDAAssoc=
NomImpPDAAssoc=
TpeForceLectPan=0
Example=1
Date=01/01/1999

这篇关于删除关键字后的所有内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆