Entendi. Aqui está como é feito:
find . -name \*.html | xargs sed -i '/<form/a\<input type="hidden" name="csrf_token" value="$csrf_token" />'
Eu preciso inserir uma tag de entrada HTML oculta em qualquer tag de formulário dentro de um monte de arquivos HTML.
Minha ideia é pesquisar por qualquer instância de
<form
e, se encontrado, insira uma linha abaixo dele que contenha:
<input type="hidden" name="csrf_token" value="$csrf_token" />
Qual é a melhor maneira de resolver isso? Estou perto com
sed -e '/<form/a\<input type="hidden" name="csrf_token" value="$csrf_token"/>'
Para adicionar algo abaixo de cada <form
, você precisa adicionar &
para indicar que deseja manter a sequência capturada (mais \n
, como você mencionou, é necessário):
$ find *.html | xargs sed -ie 's/<form/&\n\<input type="hidden" name="csrf_token" value="$csrf_token"\/>/g'
Tags text-processing awk sed