删除内容,同时保留第一个顶级powershell
我有一个sample.txt文件,我想删除其中的内容,除了第一行 我的sample.txt文件如下所示:删除内容,同时保留第一个顶级powershell,powershell,Powershell,我有一个sample.txt文件,我想删除其中的内容,除了第一行 我的sample.txt文件如下所示: 1.dslkjfladsdjgmvjfgmldskbm;sldkvmg,;sdlmg;msj,;sdrl 2.dlkjfsadfjmsal;jsalv;dsvmdsfkgmrg,pvtpvhtphb[h.[y 3.fljsafckg,ksd,v;vyklt;vlkbmyulnmktr,ouf,f/.n, 4.dflcajsmglsdv;ks'ítb;pjk.'gpjnuk. uo.hulmk
1.dslkjfladsdjgmvjfgmldskbm;sldkvmg,;sdlmg;msj,;sdrl
2.dlkjfsadfjmsal;jsalv;dsvmdsfkgmrg,pvtpvhtphb[h.[y
3.fljsafckg,ksd,v;vyklt;vlkbmyulnmktr,ouf,f/.n,
4.dflcajsmglsdv;ks'ítb;pjk.'gpjnuk. uo.hulmk,vgjhumk.'l
我希望输出结果如下所示:
1.dslkjfladsdjgmvjfgmldskbm;sldkvmg,;sdlmg;msj,;sdrl
我尝试了这些命令,但输出清除了整个文件
Clear-Content C:\sample.txt | where { $_.length -gt 2}| Set-Content C:\sample.txt
Clear-Content C:\sample.txt | Select -first 2 | Set-Content C:\sample.txt
有人能告诉我我错过了什么吗?
感谢:
Clear Content cmdlet可删除项目的内容,例如从文件中删除文本,但不会删除项目。因此,该项存在,但为空
通过使用clearcontent
可以删除sample.txt
的内容,而不必阅读它。相反,您希望使用获取内容:
(Get-Content C:\sample.txt -First 1) | Set-Content C:\sample.txt
使用作品的-First
参数(别名为-TotalCount
)与选择对象-First
基本相同,但允许获取内容
在获得所需行数后立即停止读取文件<传递代码>1而不是2
,以仅检索第一行。注意,Get Content
的调用必须用括号括起来,否则。或者,您可以先将文件内容读入变量
$firstLine = Get-Content C:\sample.txt -First 1
$firstLine | Set-Content C:\sample.txt
…或先将过滤后的文本输出到另一个文件,然后覆盖原始文本,从而执行“安全覆盖”
Get-Content C:\sample.txt -First 1 | Set-Content C:\sample.txt.tmp
Move-Item C:\sample.txt.tmp C:\sample.txt -Force
发件人:
Clear Content cmdlet可删除项目的内容,例如从文件中删除文本,但不会删除项目。因此,该项存在,但为空
通过使用clearcontent
可以删除sample.txt
的内容,而不必阅读它。相反,您希望使用获取内容:
(Get-Content C:\sample.txt -First 1) | Set-Content C:\sample.txt
使用作品的-First
参数(别名为-TotalCount
)与选择对象-First
基本相同,但允许获取内容
在获得所需行数后立即停止读取文件<传递代码>1而不是2
,以仅检索第一行。注意,Get Content
的调用必须用括号括起来,否则。或者,您可以先将文件内容读入变量
$firstLine = Get-Content C:\sample.txt -First 1
$firstLine | Set-Content C:\sample.txt
…或先将过滤后的文本输出到另一个文件,然后覆盖原始文本,从而执行“安全覆盖”
Get-Content C:\sample.txt -First 1 | Set-Content C:\sample.txt.tmp
Move-Item C:\sample.txt.tmp C:\sample.txt -Force
(gc C:\sample.txt | select-first 1)| out文件C:\sample.txt(gc C:\sample.txt | select-first 1)| out文件C:\sample.txt感谢您的帮助,我终于成功地应用了以下代码:
(Get-Content C:/sample.txt -TotalCount 1) | Set-Content C:\sample.txt
(获取内容C:/sample.txt-TotalCount 1)|设置内容C:\sample.txt
谢谢
Manu感谢您的帮助,我终于成功地应用了以下代码:
(Get-Content C:/sample.txt -TotalCount 1) | Set-Content C:\sample.txt
(获取内容C:/sample.txt-TotalCount 1)|设置内容C:\sample.txt
谢谢
Manu别忘了获取内容-TotalCount 1
@MathiasR.Jessen很好。我知道有一种方法可以更有效地限制读取的行数,但我正在中查找。别忘了Get Content-TotalCount 1
@MathiasR.Jessen这一点很好。我知道有一种方法可以更有效地限制读取的行数,但我正在寻找它。我并不想游说我的答案……但这与我的第一个代码片段相同-First
是获取内容
的-TotalCount
参数的别名,这在我的回答中有说明。我不是想游说我的答案……但这与我的第一个代码片段相同-First
是Get Content
的-TotalCount
参数的别名,这在我的回答中有说明。