Command-Line

從模式匹配中向後刪除行

  • August 19, 2016

我有一個需要解析的 CSV 文件,但n該文件的第一行是毫無價值的垃圾。

幸運的是,我知道正確的標題行以 開頭foo,並且在位置 0第一次出現之前的每一foo行都可以刪除。

tl;博士我怎麼做這個

an unknown
number of lines
with worthless junk
that's breaking
my CSV parsing
foo,this,is,the,header,line,always,starts,with,foo
[ legit records to follow ]

變成這個

foo,this,is,the,header,line,always,starts,with,foo
[ legit records to follow ]

我期望 - 驅動的sed響應是正確的行動方案,但我可以從命令行執行的任何解決方案都足夠了。

根據評論和進一步研究,這就是最終對我有用的方法

sed -i '/^foo/,$!d' path/to/file

這將列印 foo 之後的所有內容,包括:

sed -n '/foo/,$p' file

您可以將其通過管道傳輸到另一個文件或添加 -i 參數以重寫您的文件

引用自:https://unix.stackexchange.com/questions/302574