Utiliser sed avec deux fichiers
Bonjour,
J'ai un petit soucis.
J'essaie d'utiliser sed pour insérer du texte à un endroit précis d'un fichier. Voici mon fichier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| {
"test_data": [
{
"id": "1",
"pm": "30",
"mp": "40"
}
],
"test": [
"id",
"pm",
"mp"
]
} |
J'aimerais insérer du texte après l’accolade de test_data. Le fichier peut contenir plus ou moins d'information. Je suis donc arriver à cette commande qui fonctionne:
Code:
sed "/^[[:blank:]]*\"test_data\": \[$/,/^[[:blank:]]*],*$/ {s/^[[:blank:]]*}$/&test /}" myfile
Qui donne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| {
"test_data": [
{
"id": "1",
"pm": "30",
"mp": "40"
}test
],
"test": [
"id",
"pm",
"mp"
]
} |
Super.
Maintenant au lieu d'ajouter du texte, j'aimerais ajouter le contenu d'un fichier à la place de test. Je suis donc parti sur quelque chose de ce genre là:
Code:
sed "/^[[:blank:]]*\"test_data\": \[$/,/^[[:blank:]]*],*$/ {s/^[[:blank:]]*}$/&$(cat myAnotherFile) /}" myfile
Non fonctionnel. J'ai donc fait des recherches, et je suis tombé sur le /r qui permet d'insérer le contenu d'un fichier.
Mais pour être honnête, je ne sais pas comment insérer ce /r dans ma commande ci-dessus ....
Quelqu'un a une idée ?
Merci d'avance !
Cordialement