在PowerShell中,我想使用行号从10行文本文件中删除第5行,这是怎么做到的?
答案 0 :(得分:3)
不像我想的那样干净,但有诀窍:
$content = Get-Content foo.txt
$content | Foreach {$n=1}{if ($n++ -ne 5) {$_}} > foo.txt
如果安装了PSCX,则可以使用Skip-Object cmdlet使其更好一些:
$content = Get-Content foo.txt
$content | Skip -Index 4 > foo.txt
请注意,-Index参数为0,这就是我使用4而不是5的原因。
答案 1 :(得分:1)
我就是这样做的:
(cat SomeFile.txt) -replace (cat SomeFile.txt)[4],"" | sc SomeFile.txt -Force
或稍微可读的形式:
$LineNumber = 5
$Contents = Get-Content Somefile.txt
$Contents -replace $Contents[$LineNumber -1],"" | Set-Content Somefile.txt
虽然我同意基思的观点。如果安装了PSCX模块,Skip-Object非常有用。