首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并不连续区域的文本

合并不连续区域的文本
EN

Stack Overflow用户
提问于 2019-06-21 22:53:44
回答 1查看 67关注 0票数 1

我需要删除图片1中红色矩形中的内容,然后生成一个新的文本文件。

另外,用AIDA64终极版取代AIDA64工程师

由于保留字段被划分为不同的区域,例如:主板:,所以似乎有些困难。

在下一篇文章中,一些相关问题已经得到解决。Get strings for some specific region

代码语言:javascript
复制
--------[ AIDA64 Engineer ]------------------------------------------------------------

    version                                              AIDA64 Engineer v6.00.5100/cn

--------[ System verview ]-------------------------------------------------------------

    Motherboard:
      Processor name                                    Mobile DualCore Intel

    DMI:
      DMI BIOS Vendor                                   Phoenix Technologies

--------[ DMI ]------------------------------------------------------------------------

  [ BIOS ]

    BIOS Attributes:
      Vendor                                            Phoenix Technologies Ltd.

  [ Motherboard ]

    Motherboard:
      manufacturer                                      Intel Corp.

    Motherboard manufacturer:
      company name                                      Intel Corporation

--------[ Overclocking ]---------------------------------------------------------------

    Motherboard:
      Motherboard ID                                     <DMI>

    BIOS Attributes:
      System BIOS date                                   12/24/2012

--------[ PCI/PnP Network ]------------------------------------------------------------

    Atheros AR5009 802.11a/g/n Wireless                   PCI
    Broadcom NetLink BCM57785 PCI-E                       PCI
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-22 12:31:41

由于要删除的字符串似乎没有共同点,这个长正则表达式替换可能会有所帮助:

代码语言:javascript
复制
$re = '\s+(DMI:\s+DMI BIOS Vendor|Motherboard manufacturer:\s+company name|BIOS Attributes:\s+System BIOS date)[^-]+'
$nlnl = ([Environment]::NewLine * 2)  # replace with two newlines
(Get-Content -Path 'PATH TO THE FILE' -Raw) -replace $re, $nlnl -replace 'AIDA64 Engineer', 'AIDA64 Ultimate'

结果:

主板:处理器名为移动DualCore英特尔- DMIBIOS属性:厂商菲尼克斯技术有限公司主板:制造商英特尔公司。AR5009 802.11a/g/n无线NetLink BCM57785 BCM57785 PCI

编辑

如果只想在标题中替换AIDA64 Engineer,而不想在后面的文本中替换,请更改此部分:

代码语言:javascript
复制
-replace 'AIDA64 Engineer', 'AIDA64 Ultimate'

转到

代码语言:javascript
复制
-replace '\[ AIDA64 Engineer \]', '[ AIDA64 Ultimate ]'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56711238

复制
相关文章

相似问题

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