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:
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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" ] }
Qui donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed "/^[[:blank:]]*\"test_data\": \[$/,/^[[:blank:]]*],*$/ {s/^[[:blank:]]*}$/&test /}" myfile
Super.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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" ] }
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à:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed "/^[[:blank:]]*\"test_data\": \[$/,/^[[:blank:]]*],*$/ {s/^[[:blank:]]*}$/&$(cat myAnotherFile) /}" myfile
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
Partager