gpt4 book ai didi

powershell - 清理包含域的巨大文本文件

转载 作者:行者123 更新时间:2023-12-03 07:11:58 31 4
gpt4 key购买 nike

我有一个数据库,其中包含以下事项中列出的域日志:

.youtube.com
.ziprecruiter.com
0.etsystatic.com
0.sparkpost.com
00.mail.ne1.yahoo.com
00072e01.pphosted.com
00111b01.pphosted.com
001d4f01.pphosted.com
011.mail.bf1.yahoo.com
1.amazonaws.com

我将如何使用 powershell 或 grep 清理它们,尽管我更喜欢使用 powershell,以便它们仅包含带有 .com 扩展名的根域,并删除任何单词和 .在那之前。

我认为最好的方法是进行一个查询,从右到左查找点并删除第二个点及其后面的任何内容。例如 1.amazonaws.com 这里我们删除右侧的第二个点以及它后面的内容?即

youtube.com
ziprecruiter.com
etsystatic.com
yahoo.com
pphosted.com
amazonaws.com

最佳答案

您可以使用 Get-Content 将每一行读入字符串数组中,使用 Split()"." 上拆分,使用 [-2,-1] 获取最后两项,然后使用 -join 将数组连接起来。 。然后,我们可以使用 -UniqueSelect-Object 检索唯一项目。 .

Get-Content -Path .\database_export.txt | ForEach-Object {
$_.Split('.')[-2,-1] -join '.'
} | Select-Object -Unique

或者使用Select-Object -Last 2 获取最后两项,然后通过管道传输到 Join-String .

Get-Content -Path .\database_export.txt | ForEach-Object {
$_.Split('.') | Select-Object -Last 2 | Join-String -Separator '.'
} | Select-Object -Unique

输出:

youtube.com
ziprecruiter.com
etsystatic.com
sparkpost.com
yahoo.com
pphosted.com
amazonaws.com

关于powershell - 清理包含域的巨大文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61859649/

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