gpt4 book ai didi

Powershell 连接线

转载 作者:行者123 更新时间:2023-12-02 06:17:12 28 4
gpt4 key购买 nike

我有如下所示的文本文件:

1.

SometextSometextSometextSometextSometext

2.

SometextSometextSometextSometextSometext

3.

SometextSometextSometextSometextSometext

4.

SometextSometextSometextSometextSometext

我需要删除数字和它下面的文本之间的回车符,并且数字(.)和移动的文本之间需要有一个空格,如下所示:

现在我正在尝试:

$x =  Get-Content *FILENAME*
$x | Foreach-Object {$_ | select-string "^\d{1,2}\.\s+" }

(注意:我可以匹配选择字符串 "^\d{1,2}.\s+"但之后不知道如何删除换行符或加入文件)

我想要的最终结果:
  • SometextSometextSometextSometext
  • SometextSometextSometextSometext
  • SometextSometextSometextSometext
  • SometextSometextSometextSometext
  • 最佳答案

    $x = Get-Content $filename -Raw
    $x -replace '(\d{1,2}\.)\s*\r?\n(.+?)(\r?\n|$){2,}','$1 $2$3'

    这是如何工作的:
  • 调用 Get-Content-Raw参数将文件作为单个字符串而不是单独的行返回。在这种情况下,由于您正在处理换行符,因此更容易将其全部视为一个字符串。
  • 正则表达式的工作原理如下:
  • 查找 1 或 2 位数字后跟 . ,并在第 1 组中捕获它。
  • 继续匹配任意数量的空格,然后是可选的回车符,然后是单个换行符(这应该适用于 Windows/非 Windows 行尾)。
  • 匹配 1 个或多个字符(非贪婪)并在组 2 中捕获。
  • 匹配或 CRLF 或 LF 组合或匹配字符串的结尾,2 次或更多次,但只捕获第 3 组中的第一个实例。
  • 所以现在我们有 3 个捕获的组:数字和 .在它之后,你想要的行,以及一个单行结束(如果它存在)。
  • 我们用第 1 组、单个空格、第 2 组和第 3 组替换匹配的整个内容。
  • 关于Powershell 连接线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275029/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com