Je suis en train de faire correspondre plusieurs lignes remplacer un bloc avec sed et je ne peux pas le comprendre ..sélection des lignes avec sed
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'testblah', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Je pense que la meilleure façon de le faire serait quelque chose comme ça ;
sed -i "s/^DATABASES\s?+=\s?+{$+8/test/" settings.py
En bref, je veux trouver le DATABASES = {
comprennent les 8 lignes suivantes dans la capture et le remplacer par autre chose.
Des idées de ce qui ne va pas?
Je pense que le problème est que vous n'apportez pas toutes les lignes dans le match, mais cela fait longtemps. Par défaut, le modèle sed n'est exécuté que sur une seule ligne à la fois, vous devez faire quelques trucs pour amener la ligne suivante en utilisant d'autres commandes. – caveman