A menos que você tenha o GNU awk 4.1.0 ou posterior ...
Você não terá essa opção como a opção -i
do sed, então faça:
for file in *
do
awk -v lines=2 'BEGIN { ignore = -1 } /radius-server/ { ignore = NR + lines } NR != ignore { print }' "$file"
done > result.txt
Isso funciona da seguinte maneira:
BEGIN { ignore = -1 } # initialize ignore with -1 so NR will never
# be equal to it by accident
/radius-server/ { ignore = NR + lines } # when the radius-server is found, set ignore to the
# line we want to ignore
NR != ignore { print } # unless the current line is that line, print
# it.
Nota: o -i
não é mágico, ele também está criando um arquivo temporário sed
apenas o manipula para você.
Atualizar
Se você precisar recorrer aos subdiretórios:
find . -type f -exec awk ... {} ; > result.txt
Em ambos os casos, você provavelmente deve colocar o resultado.txt em um diretório diferente. Caso contrário, ele será correspondido e usado como um arquivo de entrada.