Perl linha de comando multi-linha substituir
Estou tentando substituir o texto em um arquivo de várias linhas usando o perl da linha de comando. Estou usando o Ubuntu Natty.
Abaixo está o conteúdo do meu arquivo de texto (chamado test.txt):
[mysqld]
#
# * Basic Settings
#
#
# * IMPORTANT
# If you make changes to these settings and your system uses apparmor, you may
# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
#
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
Abaixo é o meu comando perl:
perl -i -pe "s/(\[mysqld\][^\^]+)/\1\nsometext/g" test.txt
No entanto, em vez de substituir todo o texto do arquivo, abaixo está o que eu acabo com:
[mysqld]
sometext#
# * Basic Settings
#
#
# * IMPORTANT
# If you make changes to these settings and your system uses apparmor, you may
# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
#
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
#
Tentei o Regex no RegexBuddy para Perl e ele corresponde a tudo no arquivo de texto, mas por algum motivo não está funcionando usando o perl na linha de comand
Eu apreciaria alguma ajuda.
Desde já, obrigado