我已经能够追踪基本的头/尾功能:
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(使用前将#替换为@)