Powershell 计算每个文件的字符出现次数(仅第一行)
我有一个包含一堆csv文件的文件夹 我希望制作一个Powershell脚本,该脚本能够读取该文件夹中每个文件的第一行,并计算该行中某个特定字符的出现次数(在我的示例中为分号) 所需的输出文件为:Powershell 计算每个文件的字符出现次数(仅第一行),powershell,Powershell,我有一个包含一堆csv文件的文件夹 我希望制作一个Powershell脚本,该脚本能够读取该文件夹中每个文件的第一行,并计算该行中某个特定字符的出现次数(在我的示例中为分号) 所需的输出文件为: File_1 : 6 --number of semicolons in the 1st line of the 1st file File_2 : 8 --number of semicolons in the 1st line of the 2nd file File_3 : 13 --numb
File_1 : 6 --number of semicolons in the 1st line of the 1st file
File_2 : 8 --number of semicolons in the 1st line of the 2nd file
File_3 : 13 --number of semicolons in the 1st line of the 3rd file
...
您可以将其分解为:
- 发现所有文件
- 对于每一项:
- 读第一行
- 计数分号
- 输出文件名+计数
您可以将其分解为:
- 发现所有文件
- 对于每一项:
- 读第一行
- 计数分号
- 输出文件名+计数
公认的答案似乎有点不必要的复杂,因此这里有一个Powershell one liner:
Get-Childitem -Filter *.csv | % {$_ | Add-Member -Name Count -MemberType NoteProperty -Value ([regex]::Matches((Get-Content $_.Name -TotalCount 1), ':').Count); $_} | Select Name, Count
公认的答案似乎有点不必要的复杂,因此这里有一个Powershell one liner:
Get-Childitem -Filter *.csv | % {$_ | Add-Member -Name Count -MemberType NoteProperty -Value ([regex]::Matches((Get-Content $_.Name -TotalCount 1), ':').Count); $_} | Select Name, Count
非常感谢。您只是忘记覆盖$firstLine的值,否则它将给出整行的长度。它对我来说是这样的:$firstLine=$firstLine-replace'[^;]'谢谢!您只是忘记覆盖$firstLine的值,否则它将给出整行的长度。它对我来说是这样工作的:$firstLine=$firstLine-replace'[^;]'它正在计算整个文件的发生率。我只需要将它计算在文件的第一行。很抱歉,没有计算到第一行-已更新我的答案。很好的努力,但您的一行不是真正的一行,因为其中包含分号。当然,这都在一行上,但是,你知道,分号在这个用例中是一个终止符如果你想炫耀你所做的,你就必须这么做$(([regex]::匹配((Get Content$\.Name-TotalCount 1),':').Count);$\),否则它将在ISE/VSCode中显示为错误。它正在计算整个文件的出现次数。我只需要将它计算在文件的第一行。很抱歉,没有计算到第一行-已更新我的答案。很好的努力,但您的一行不是真正的一行,因为其中包含分号。当然,这都在一行上,但是,你知道,分号在这个用例中是一个终止符如果你想炫耀你所做的,你就必须这么做$(([regex]::匹配((Get Content$\.Name-TotalCount 1),':')).Count);$\),否则它将在ISE/VSCode中显示为错误。