有用的信息在此处分散在其他答案中,但我认为有一个简洁的摘要很有用:
除前三行以外的所有行
1..10 | Select-Object -skip 3
returns (one per line): 4 5 6 7 8 9 10
除最后三行以外的所有行
1..10 | Select-Object -skip 3 -last 10
returns (one per line): 1 2 3 4 5 6 7
也就是说,您可以使用内置的 PowerShell 命令来执行此操作,但是必须指定输入的大小会很烦人。一个简单的解决方法是只使用一个比任何可能都大的常量输入,您不需要先验地知道大小:
1..10 | Select-Object -skip 3 -last 10000000
returns (one per line): 1 2 3 4 5 6 7
正如 Keith Hill 建议的那样,更简洁的语法是使用 PowerShell Community Extensions 中的 Skip-Object cmdlet(Goyuix 的答案中的 Skip-Last 函数执行相同,但使用 PSCX 可以让您不必维护代码):
1..10 | Skip-Object -last 3
returns (one per line): 1 2 3 4 5 6 7
前三行
1..10 | Select-Object –first 3
returns (one per line): 1 2 3
最后三行
1..10 | Select-Object –last 3
returns (one per line): 8 9 10
中间四行
(这是因为-skip 在-first 之前处理,无论调用中参数的顺序如何。)
1..10 | Select-Object -skip 3 -first 4
returns (one per line): 4 5 6 7