Você pode fazer:
for f in *.conf; do
base=$(basename "$f" '.conf') # gives '25' from '25.conf'
sed -i.before "s/example/$base/g" "$f"
done
Ao usar a opção -i
para sed
, você deve ter certeza absoluta de que o comando sed
funciona porque -i
altera os arquivos no local . Isso significa que a saída gerada irá sobrescrever o arquivo de entrada. Se o seu comando de substituição ( s/…/…/
) estiver errado, você pode acabar com arquivos vazios e sem backups. Por isso, usei -i.before
, o que deixará um arquivo *.before
com o conteúdo original.