2 Stimmen

Warum funktioniert meine sed {r FILE d} Funktion nicht?

Ich kann nicht sagen, dass ich die Fehlermeldung verstehe.

bash_prompt% sed -e '/__SUBSTITUTE_HERE__/ {r tmp.txt d}' < myFile.txt
sed: 2: "/__SUBSTITUTE_HERE__/ { ...": unerwartetes EOF (ausstehende })

Ich verwende OSX 10.7.4 (Darwin Kernel Version 11.4.0)

Ziel ist es, ein Token in einer Datei durch den Inhalt einer anderen Datei in einem Bash-Skript zu ersetzen.

5voto

Stephane Rouberol Punkte 4248
sed -e '/__SUBSTITUTE_HERE__/ {r tmp.txt' -e 'd;}' < myFile.txt

see http://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq5_008.html

2voto

choroba Punkte 214897

Du solltest Befehle in sed durch ; oder einen Zeilenumbruch, nicht durch ein Leerzeichen, trennen. Der Befehl r scheint nur den Zeilenumbruch nach dem Dateinamen zu verlangen.

sed -e '/__SUBSTITUTE_HERE__/ {r tmp.txt
d}' < myFile.txt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X