微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Range 运算符在 Powershell 中生成按字母顺序命名的文本文件

如何解决使用 Range 运算符在 Powershell 中生成按字母顺序命名的文本文件

我应该编写一个脚本,将特定文件中的单词按字母顺序排序,并将它们放入名为 A.txt、B.txt 等直至 Z.txt 的 26 个文本文件中。

我能够在 Powershell 中实现以下代码,该代码输出以数字命名的文本文件

$Content = Get-Content ".\sample.txt"
$Content = ($Content.Split(" .,:;?!/()[]{}-```"")|sort)
$linecount = 0
$filenumber = 0
$destPath = "C:\"
$destFileSize = 26

$Content | % {
    Add-Content $destPath\$filenumber.txt "$_"
    $linecount++
    If ($linecount -eq $destFileSize) {
        $filenumber++         
        $linecount = 0
    }
}

如何更改代码显示按字母顺序命名的输出文本文件

解决方法

使用 Group-Object 根据第一个字母对单词进行分组:

$Content |Group {$_.Substring(0,1).ToUpper()} |ForEach-Object {
  $path = Join-Path $destPath $_.Name
  $_.Group |Set-Content $path
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。