提问人:Antoni Gual Via 提问时间:11/17/2023 更新时间:11/17/2023 访问量:18
在按文件名分隔的文件夹中打印 n 个文件的第一行
Printing n first lines of files in folder separed by filename
问:
我想在一个文件夹中打印每个文件的前两行,文件名作为标题这是我所拥有的:
Get-ChildItem *.4th | % {$filename = $_.Name
( $_| Get-Content -First 2) |
% { "{0}`r`n{1}`r`n" -f $filename, $_ }}
它有效,但它将两行视为不同的项目
zigzag.4th
\ Taken from xxxxx
zigzag.4th
\ 4tH version 2010, xxx
我怎样才能把这两条线放在一起?
zigzag.4th
\ Taken from xxxxx
\ 4tH version 2010, xxx
答:
0赞
Antoni Gual Via
11/17/2023
#1
没关系,我解决了它,在 Get-Content 中添加了一个 -join
Get-ChildItem *.4th | % {$filename = $_.Name
($_ | Get-Content -Head 2) -join ("`r`n")| % {
"`r`n{0}`r`n{1}" -f $filename, $_ }}
0赞
Santiago Squarzon
11/17/2023
#2
这并不能完全回答您的问题,但您可以根据需要使用 Context
值或为此使用:Select-String
1
2
Select-String -Path *.4th -Pattern ^ -List -Context 2 |
Select-Object Filename, Line, @{ N='Context'; E={ $_.Context.PostContext -join "`r`n" }} |
Format-List
评论