PowerShell 相当于“head -n-3”?

2023-12-24

我已经能够追踪基本的头/尾功能:

head -10 myfile <==> cat myfile | select -first 10
tail -10 myfile <==> cat myfile | select -last 10

但是,如果我想列出除最后三行之外的所有行或除前三行之外的所有行,您该怎么做?在 Unix 中,我可以执行“head -n-3”或“tail -n+4”。对于 PowerShell 应如何完成此操作尚不清楚。


有用的信息分布在其他答案中,但我认为有一个简洁的总结是有用的:

除以下所有线路first three

1..10 | Select-Object -skip 3
returns (one per line): 4 5 6 7 8 9 10

除以下所有线路last three

1..10 | Select-Object -skip 3 -last 10
returns (one per line): 1 2 3 4 5 6 7

那是你can使用内置的 PowerShell 命令来完成此操作,但是必须指定输入的大小,这很烦人。一个简单的解决方法是仅使用大于任何可能输入的常量,并且您不需要预先知道大小:

1..10 | Select-Object -skip 3 -last 10000000
returns (one per line): 1 2 3 4 5 6 7

正如 Keith Hill 建议的那样,更简洁的语法是使用 PowerShell 社区扩展中的 Skip-Object cmdlet(Goyuix 答案中的 Skip-Last 函数的执行效果相同,但使用 PSCX 可以使您免于维护代码):

1..10 | Skip-Object -last 3
returns (one per line): 1 2 3 4 5 6 7

First三行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerShell 相当于“head -n-3”? 的相关文章

随机推荐