首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Powershell中实现head、tail、more、less、sed的功能?

如何在Powershell中实现head、tail、more、less、sed的功能?
EN

Stack Overflow用户
提问于 2012-03-13 18:12:01
回答 7查看 147.4K关注 0票数 135

在windows上,使用Powershell,什么命令相当于linux的headtailmorelesssed

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-03-13 18:51:25

Get-Content (别名:gc)是读取文本文件的常用选项。然后,您可以进一步过滤:

代码语言:javascript
运行
复制
gc log.txt | select -first 10 # head
gc -TotalCount 10 log.txt     # also head
gc log.txt | select -last 10  # tail
gc -Tail 10 log.txt           # also tail (since PSv3), also much faster than above option
gc log.txt | more             # or less if you have it installed
gc log.txt | %{ $_ -replace '\d+', '($0)' }         # sed

这对于小文件来说已经足够好了,较大的文件(多于几个MiB)可能会有点慢。

PowerShell Community Extensions包括一些用于特殊文件内容的cmdlet(例如,Get-FileTail)。

票数 213
EN

Stack Overflow用户

发布于 2017-01-13 10:43:19

下面是实现headtail的内置方法。不要使用管道,因为如果你有一个很大的文件,它会非常慢。即使对于大型文件,使用这些内置选项也会非常快。

代码语言:javascript
运行
复制
gc log.txt -head 10 
gc log.txt -tail 10
gc log.txt -tail 10 -wait # equivalent to tail -f
票数 76
EN

Stack Overflow用户

发布于 2012-03-13 19:32:12

more.exe存在于Windows上,很容易找到less的端口( PowerShell Community Extensions,PSCX,包括一个)。

对于这两个独立的程序,PowerShell实际上并没有提供任何替代方案,但是对于结构化数据,Out-Grid可能会很有帮助。

HeadTail都可以使用Select-Object分别使用-First-Last参数进行仿真。

Sed函数都是可用的,但是结构有很大的不同。过滤选项在Where-Object中可用(或通过Foreach-Object和范围的某些状态)。其他的转换操作可以用Select-ObjectForeach-Object来完成。

然而,当PowerShell传递(.NET)对象时-以及它们的所有类型结构,例如。日期仍然是DateTime实例-而不仅仅是字符串,每个命令都需要解析它自己,很多sed和其他类似的程序都是多余的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9682024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档