regex - 打印序列中缺少的数字
问题描述
我有一个名为的文件test.txt
,其中有一个序列:
1 3 5 6 7
我想打印丢失的数字,我发现了一个完美的魔术代码:
gc test.txt |% {$i = 1}{while ($i -lt $_){$i;$i++};$i++}
或这个:
gc test.txt | sort {[int]$_} |% {$i = 1}{while ($i -lt $_){$i;$i++};$i++}
但我想打印所有数字:
- 在绿色列表中的数字
- 在RED中,列表中缺少的数字
解决方案
读取文件,从第一个数字开始,在最后一个数字结束,输出文件中没有的任何数字...
$TestFile = Get-Content Test.txt|Sort
[int]$TestFile[0]..[int]$TestFile[-1]|Where{$_ -notin $TestFile}
编辑:哎呀,你想要所有的数字。这将需要一个开关,一个更新的时刻。
$TestFile = Get-Content Test.txt|Sort
Switch([int]$TestFile[0]..[int]$TestFile[-1]){
{$_ -notin $TestFile}{Write-Host "$_" -Fore Red;Continue}
default {Write-Host "$_" -Fore Green}
}
推荐阅读
- android - 我如何在 iOS / Android 中嵌入 NativeScript Angular 应用程序并从现有应用程序导航到某些路由
- python - 根据分隔符python的特定精度进行行拆分
- javascript - 链接到具有锚 div id 的另一个页面
- itext - PdfReader iText 很慢或我收到大文件的 Java 堆异常
- sql-server - 加入仅包括表中的最大日期
- javascript - 在另一个函数中使用填充在一个函数中的数组
- groovy - Fillo 在 Groovy 中获取记录计数失败
- bioinformatics - 无法同时执行所有程序
- javascript - 导航步骤完成后打开模态
- javascript - 如何在 Polymer 的另一个页面上使用 Iron-ajax 响应?