Uma maneira, POSIXly:
$ echo "lost
load
linux
loan
linux" | sed -e/linux/\{ -e:1 -en\;b1 -e\} -ed
ou menor:
sed -n '/linux/,$p'
ou ainda mais curto:
sed '/linux/,$!d'
Para os leitores que se perguntam por que prefiro o mais longo em relação à versão mais curta, a versão mais longa executará apenas i / o sobre o restante do arquivo, enquanto usar intervalos pode afetar o desempenho se o segundo endereço for um regex estão tentando ser correspondidos mais do que o necessário.
Considere:
$ time seq 1000000 | sed -ne '/^1$/{' -e:1 -en\;b1 -e\}
=====
JOB sed -e '/^1$/,$d'
87% cpu
0.11s real
0.10s user
0.00s sys
com:
$ time seq 1000000 | sed -e '/^1$/,/1000000/d'
=====
JOB sed -e '/^1$/,/1000000/d'
96% cpu
0.24s real
0.23s user
0.00s sys
você pode ver as diferenças entre as duas versões. Com regex complexo, será uma grande diferença.