Mit sed einfügen Datei Inhalt
Ich versuche, legen Sie den Inhalt einer Datei vor einem bestimmten Muster
Hier ist mein code:
sed -i "" "/pattern/{
i\\
r $scriptPath/adapters/default/permissions.xml"
}" "$manifestFile"
Es fügt den Pfad, anstatt den Inhalt der Datei.
Irgendwelche Ideen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim einfügen von text vor ein Muster, Sie müssen swap die Muster den Raum in den Raum vor dem Lesen in die Datei. Zum Beispiel:
r someFile.txt # insert content of ...
und es ist fehlgeschlagen, schweigend.pattern
ist nicht auf der letzten Zeile.Entfernen Sie einfach
i\\
.Beispiel:
Ich habe so etwas wie dies mit awk. Sieht hässlich aus aber hat den trick in meiner test:
Befehl:
test.txt:
insert.txt:
Ausgabe:
Ich versuchte Todd ' s Antwort und es funktioniert Super,
aber ich fand "h" & "g" Befehle sind ommitable.
Dank diese faq (gefunden von @vscharf ist Kommentare), Todd ' s Antwort kann diese sein-liner.
Edit:
Wenn Sie brauchen, hier-doc-version, überprüfen Sie bitte diese.
CodeGnome ' s Lösung nicht funktionieren, wenn das Muster ist in der letzten Zeile..
So habe ich 3 Befehle.
vim "$fileToEdit" <<< ':$-1 r'"$fileToInsert"$'\n:wq'