powershell 如何通过一行从文件中选择字符串?

bz4sfanl  于 2023-03-02  发布在  Shell
关注(0)|答案(3)|浏览(153)

如何通过一行从文件中选择字符串?
例如,我的文件包含字符串
字符串1
字符串2
字符串3
字符串4
我想要得到
字符串2
字符串4
我试着这样做

Get-Content -Path "E:\myfile.txt" | Select-String

但是我不知道如何从Select-String方法中创建这个

mrfwxfqh

mrfwxfqh1#

如果你真的想选择这两条线,那么我想这是最短的方法:

(Get-Content -Path "E:\myfile.txt")[1,3]

Get-Content -Path "E:\myfile.txt" | Select-Object -Index 1,3

但是,如果您希望仅从文件中选择偶数行,则可以执行以下操作:

# return only the even lines (for odd lines, do for ($i = 0; ...)
$text = Get-Content -Path "E:\myfile.txt"; for ($i = 1; $i -lt @($text).Count; $i+=2) { $text[$i] }

或者使用Select-String

# return only the even lines (for odd lines, remove the ! exclamation mark
(Select-String -Path "E:\myfile.txt" -Pattern '.*' | Where-Object {!($_.LineNumber % 2)}).Line
zynd9foi

zynd9foi2#

获取内容路径“~\桌面\字符串. txt”|选择字符串模式“字符串2|串4”

dgsult0t

dgsult0t3#

可以使用Where-Object cmdlet筛选对象流(本例中为字符串):

Get-Content -Path "E:\myfile.txt" | Where-Object {$_ -match '[24]$'}
# or
Get-Content -Path "E:\myfile.txt" | Where-Object {$_ -like '*[24]'}
# or
Get-Content -Path "E:\myfile.txt" | Where-Object {$_.EndsWith('2') -or $_.EndsWith('4')'}

如果只需要文件中的偶数行:

Get-Content -Path "E:\myfile.txt" | Where-Object {$_.ReadCount % 2 -eq 0}

相关问题