【问题标题】:How do I delete entire lines in powershell?如何删除powershell中的整行?
【发布时间】:2022-06-11 01:37:52
【问题描述】:

我有一个脚本可以从网页中抓取原始 html。当它这样做时,它在我想要删除的文本文件(输出)的顶部有 17 行。如何在 powershell 中删除整行?

每次运行脚本时生成的行都是唯一的。

当前代码:

$scrape = Invoke-Webrequest -uri "http://example.com/webpage"

$scrape.rawcontent | Out-File -FilePath C:\Users\outputlocation.txt -append

然后它会创建一个文件,并在文件顶部为我提供已抓取网页的“统计信息”,因为它是原始内容。删除前 17 行将解决我的问题。

谢谢!

【问题讨论】:

  • 如果你只是想排除输出,你可以跳过像$scrape.rawcontent | Select -Skip 17 | Out-File ...这样的X行
  • @Cpt.Whale 我相信需要事先拆分,rawcontent 是一个多行字符串,$scrape.rawcontent -split '\r?\n' | ...
  • @SantiagoSquarzon 啊,完全正确!拆分然后跳过
  • @SantiagoSquarzon 只是好奇,'\r?\n' 是做什么的?另外,命令是 $scrape.rawcontent -split '\r?\n' |选择 - 跳过 17 |文件外...?
  • @LordZeus 将多行字符串拆分为换行符/回车符,然后是换行符。是的,命令会像你在那里一样,没关系

标签: powershell


【解决方案1】:

我建议添加一个中间清理步骤:

$scrape = Invoke-Webrequest -uri "http://example.com/webpage"
$scrape.RawContent|Out-File raw.txt 
Get-Content raw.txt| Select-Object -Skip 17 | 
        Out-File -FilePath C:\Users\outputlocation.txt -Append

作为抓取对象写入文件可能不包含行间正确的 cr/lf 组合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 2020-11-24
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 2014-12-29
    • 2015-09-05
    • 2016-10-22
    相关资源
    最近更新 更多