Acho que as soluções mais fáceis são:
Sed:
sed -i '0,/string/{//d}' file
Awk:
awk '/string/ && !p {p++;next}1' file
Bastante fácil. Estou procurando as abordagens mais simples em sed
e awk
para remover a primeira linha de um arquivo que contém uma sequência específica.
Isso pode funcionar para você:
sed 'x;/./{x;b};x;/string/{h;d}' file
ou
awk '/string/ && !p {p++;next}1' file
usando o gnu sed:
sed '0, / MYSTRING / {// d;}' arquivo # exclui apenas a primeira correspondência