Se você quer dizer que deseja apenas algumas linhas para o arquivo tmp , enquanto o resto não é alterado:
cmd | awk '/pattern/ {print > "tmp"; next}
{print}'
Ou:
cmd | sed '/pattern/!b
w tmp
d'
(em uma linha: cmd | sed -e '/pattern/!b' -e 'w tmp' -e d )
Ou:
cmd | sed '/pattern/ {
w tmp
d
}'
(em uma linha: cmd | sed -e '/pattern/{w tmp' -e 'd;}' )
Observe que, para sed , pattern é uma expressão regular básica , enquanto para awk , é uma expressão regular estendida .