gpt4 book ai didi

powershell - 如何在 PowerShell 的空行上将文件拆分为多行 block ?

转载 作者:行者123 更新时间:2023-12-03 00:26:21 26 4
gpt4 key购买 nike

我正在尝试将 LDAP 搜索的输出转换为作者文件以进行 Git/SVN 迁移。

我有 ldapsearch 命令的输出。行尾和空行是换行符 (LF)。我想将文件分成多个 block ,以便在每个 dn 记录(每个空行之间的多行 block )中进行进一步处理。

dn: cn=alice,ou=users,dc=foo
cn: alice
givenName: Alice
email: alice@foo.com

dn: cn=bob,ou=users,dc=foo
cn: bob
givenName: Bob
email: bob@foo.com

dn: cn=carol,ou=users,dc=foo
cn: carol
givenName: Carol
email: carol@foo.com

我更喜欢 PowerShell 的文本操作功能,因为我是 linux 新手。我想我可以使用 -split 运算符和多个换行符 `n 来指示空行。为了测试它,我只选择第一个“ block ”。

PS> (Get-Content ldapsearch.txt) -split "`n`n" | Select-Object -First 1
dn: cn=alice,ou=users,dc=foo

但是,无论我如何构造拆分,我总是得到第一行,没有别的!我已经尝试了各种正则表达式拆分值和选项。

最佳答案

PowerShell:

$string = Get-Content "file.txt" | Out-String
$nl = [System.Environment]::NewLine
$items = ($string -split "$nl$nl")

应该可以工作(假设 CR+LF 换行并且空行实际上是空的)。

既然你提到了 Linux,Python 中的例子:

file_name = "file.txt"
with open(file_name, 'r') as open_file:
txt = open_file.read()
items = txt.split('\r\n\r\n')

关于powershell - 如何在 PowerShell 的空行上将文件拆分为多行 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25185332/

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