gpt4 book ai didi

powershell - 如何在txt文件的特定行中找到字符串的所有实例的位置?

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

假设我有一个.txt文件,其中包含多个日期/时间的行:

2020/5/5上午5:45:45

2020/5/10下午12:30:03

我想在一行中找到所有斜杠的位置,然后继续进行下一行。

因此,对于第一行,我希望它返回值:

1 3

对于第二行,我想要:

1 4

我将如何去做呢?

我目前有:

$firstslashpos = Get-Content .\Documents\LoggedDates.txt | ForEach-Object{
$_.IndexOf("/")}

但这只给我每一行的第一个“/”,并且一次给我所有行的结果。我需要它循环,以便可以找出每一行每个“/”之间的空间。

对不起,如果我说的不好。

最佳答案

您确实可以为此使用 String.IndexOf() 方法!

function Find-SubstringIndex
{
param(
[string]$InputString,
[string]$Substring
)

$indices = @()

# start at position zero
$offset = 0

# Keep calling IndexOf() to find the next occurrence of the substring
# stop when IndexOf() returns -1
while(($i = $InputString.IndexOf($Substring, $offset)) -ne -1){
# Keep track of the index at which the substring was found
$indices += $i
# Update the offset, we'll want to start searching for the next index _after_ this one
$offset = $i + $Substring.Length
}
}

现在您可以执行以下操作:

Get-Content listOfDates.txt |ForEach-Object {
$indices = Find-SubstringIndex -InputString $_ -Substring '/'
Write-Host "Found slash at indices: $($indices -join ',')"
}

关于powershell - 如何在txt文件的特定行中找到字符串的所有实例的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61918184/

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