在windows上,使用Powershell,什么命令相当于linux的head
,tail
,more
,less
和sed
发布于 2012-03-13 18:51:25
Get-Content
(别名:gc
)是读取文本文件的常用选项。然后,您可以进一步过滤:
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)。
发布于 2017-01-13 10:43:19
下面是实现head
和tail
的内置方法。不要使用管道,因为如果你有一个很大的文件,它会非常慢。即使对于大型文件,使用这些内置选项也会非常快。
gc log.txt -head 10
gc log.txt -tail 10
gc log.txt -tail 10 -wait # equivalent to tail -f
发布于 2012-03-13 19:32:12
more.exe
存在于Windows上,很容易找到less
的端口( PowerShell Community Extensions,PSCX,包括一个)。
对于这两个独立的程序,PowerShell实际上并没有提供任何替代方案,但是对于结构化数据,Out-Grid
可能会很有帮助。
Head
和Tail
都可以使用Select-Object
分别使用-First
和-Last
参数进行仿真。
Sed
函数都是可用的,但是结构有很大的不同。过滤选项在Where-Object
中可用(或通过Foreach-Object
和范围的某些状态)。其他的转换操作可以用Select-Object
和Foreach-Object
来完成。
然而,当PowerShell传递(.NET)对象时-以及它们的所有类型结构,例如。日期仍然是DateTime
实例-而不仅仅是字符串,每个命令都需要解析它自己,很多sed
和其他类似的程序都是多余的。
https://stackoverflow.com/questions/9682024
复制相似问题