Excluir linhas do padrão correspondem para trás

0

Eu tenho um arquivo CSV que preciso analisar, mas as primeiras n linhas desse arquivo são inúteis.

Felizmente, sei que a linha de cabeçalho apropriada começa com foo e essa todas linha antes que a primeira aparição de foo na posição 0 possa ser excluída.

tl; dr Como faço isso

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 ]

Transforme isso em

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

Espero que uma resposta sed -powered seja o curso de ação correto, mas qualquer solução que eu possa executar a partir da linha de comando é suficiente.

    
por Frank Koehl 10.08.2016 / 16:13

2 respostas

0

Por comentários e mais pesquisas, aqui está o que funcionou para mim

sed -i '/^foo/,$!d' path/to/file
    
por 19.08.2016 / 16:45
2

Isso imprimirá tudo depois de foo, inclusive:

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

Você pode canalizá-lo para outro arquivo ou adicionar o parâmetro -i para reescrever seu arquivo

    
por 10.08.2016 / 16:19