hi, ich moechte mittels sed oder einem anderen tool an einer bestimmten stelle eine datei einfuegen. ich hab mir das in etwa so vorgestellt, dass auf grund einer regex z.b. %%INSERT% durch den inhalt von der datei inhalt.txt erstezt wird: sed -s 's/%%INSERT%/datei.txt/' aber so wird ja lediglich datei.txt reingeschrieben... hat das jemand von euch schon gemacht? ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
* Sascha Andres wrote @ 10. Mar 2002 23:16:
ich moechte mittels sed oder einem anderen tool an einer bestimmten stelle eine datei einfuegen. ich hab mir das in etwa so vorgestellt, dass auf grund einer regex z.b. %%INSERT% durch den inhalt von der datei inhalt.txt erstezt wird:
sed -s 's/%%INSERT%/datei.txt/'
aber so wird ja lediglich datei.txt reingeschrieben...
sed -e "/^\# DEMO INSIGHT/ r ${DATEI}" < $INPUTFILE > $TMPFILE mv $TMPFILE $INPUTFILE Thomas
hi, On Sun, Mar 10, 2002 at 11:36:53PM +0100, Thomas Hart wrote:
sed -e "/^\# DEMO INSIGHT/ r ${DATEI}" < $INPUTFILE > $TMPFILE mv $TMPFILE $INPUTFILE irgendwie wills bei mir nicht. -e steht fuer expression wonach ein skript folgen soll. r datei wohl fuer das einfuegen der datei. wenn ich das richtig verstanden sollte also # DEMO INSIGHT durch den inhalt von DATEI in INPUTFILE ersetzt werden. aber es tut nicht.
ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
Hallo, Am Montag, 11. März 2002 11:56 schrieb Sascha Andres:
On Sun, Mar 10, 2002 at 11:36:53PM +0100, Thomas Hart wrote:
sed -e "/^\# DEMO INSIGHT/ r ${DATEI}" < $INPUTFILE > $TMPFILE mv $TMPFILE $INPUTFILE
irgendwie wills bei mir nicht.
Kann fast nicht sein; bei mir funktioniert's einwandfrei.
wenn ich das richtig verstanden sollte also # DEMO INSIGHT durch den inhalt von DATEI in INPUTFILE ersetzt werden.
Nicht »ersetzt«, sondern eingefügt. Wenn Du die #-Zeile außerdem
löschen möchtest, schreib':
$ sed -e "/^\# DEMO INSIGHT/{;d;r ${DATEI} ;}" <$INPUTFILE >$TMPFILE
(Hab's nicht ausprobiert.)
Gruß
Bertram
--
Bertram Scharpf
* Sascha Andres wrote @ 11. Mar 2002 11:56:
On Sun, Mar 10, 2002 at 11:36:53PM +0100, Thomas Hart wrote:
sed -e "/^\# DEMO INSIGHT/ r ${DATEI}" < $INPUTFILE > $TMPFILE mv $TMPFILE $INPUTFILE irgendwie wills bei mir nicht. -e steht fuer expression wonach ein skript folgen soll. r datei wohl fuer das einfuegen der datei. wenn ich das richtig verstanden sollte also # DEMO INSIGHT durch den inhalt von DATEI in INPUTFILE ersetzt werden. aber es tut nicht.
thomas@4ppc31x:~/tmp > cat myfile Hallo Test thomas@4ppc31x:~/tmp > cat inputfile systat 11/udp users # Active Users daytime 13/tcp Daytime # (RFC 867) daytime 13/udp Daytime # (RFC 867) # DEMO INSIGHT netstat 15/tcp # Unassigned [was netstat] qotd 17/tcp quote # Quote of the Day thomas@4ppc31x:~/tmp > sed -e "/^\# DEMO INSIGHT/ r ./myfile" < \ inputfile systat 11/udp users # Active Users daytime 13/tcp Daytime # (RFC 867) daytime 13/udp Daytime # (RFC 867) # DEMO INSIGHT Hallo Test netstat 15/tcp # Unassigned [was netstat] qotd 17/tcp quote # Quote of the Day thomas@4ppc31x:~/tmp > Hab GNU sed version 3.02 Thomas
hi, On Mon, Mar 11, 2002 at 01:01:01PM +0100, Thomas Hart wrote:
thomas@4ppc31x:~/tmp > cat myfile Hallo Test steht seitentitel drin. mein auruf sieht so aus: sed -e "/^\# DEMO INSIGHT/ r ./headline.txt" < input das ergebnis: <td width="520" height="64" valign="middle" align="center"> <font face="Helvetica" size="4"><b>%%HEADLINE%<b></font> # DEMO INSIGHT </td> mein sziel ist es in einem html template zb %%HEADLINE% ueberall zu ersetzen. aber nicht mal das einfuegen klappt. Hab GNU sed version 3.02 hab ich auch.
ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
* Sascha Andres wrote @ 11. Mar 2002 13:46:
On Mon, Mar 11, 2002 at 01:01:01PM +0100, Thomas Hart wrote:
thomas@4ppc31x:~/tmp > cat myfile Hallo Test steht seitentitel drin. mein auruf sieht so aus: sed -e "/^\# DEMO INSIGHT/ r ./headline.txt" < input ^<<<<< Hier steht ein ^ das ergebnis: <td width="520" height="64" valign="middle" align="center"> <font face="Helvetica" size="4"><b>%%HEADLINE%<b></font> # DEMO INSIGHT ^>>>> Und das hier steht nicht als erstes Zeichen </td> mein sziel ist es in einem html template zb %%HEADLINE% ueberall zu ersetzen. aber nicht mal das einfuegen klappt.
Entweder du löschst das ^ im sed Komando, oder du holst # DEMO INSIGHT an den Zeilenanfang. Thomas
* Thomas Hart schrieb am 11.Mär.2002:
* Sascha Andres wrote @ 11. Mar 2002 13:46:
On Mon, Mar 11, 2002 at 01:01:01PM +0100, Thomas Hart wrote:
thomas@4ppc31x:~/tmp > cat myfile Hallo Test steht seitentitel drin. mein auruf sieht so aus: sed -e "/^\# DEMO INSIGHT/ r ./headline.txt" < input ^<<<<< Hier steht ein ^ das ergebnis: <td width="520" height="64" valign="middle" align="center"> <font face="Helvetica" size="4"><b>%%HEADLINE%<b></font> # DEMO INSIGHT ^>>>> Und das hier steht nicht als erstes Zeichen </td> mein sziel ist es in einem html template zb %%HEADLINE% ueberall zu ersetzen. aber nicht mal das einfuegen klappt.
Entweder du löschst das ^ im sed Komando, oder du holst # DEMO INSIGHT an den Zeilenanfang.
Genau. Das ^ steht für Zeilenanfang. Es ist zu sagen, daß nur ab der Zeile die Datei eingelesen wird. Innerhalb einer Zeile ist so leicht nicht möglich. Wie sollte das auch gehen? Die Datei könnte doch viele Zeilen lang sein. Wenn Du sowas haben möchtest, dann verwende lieber perl. Bernd -- ROTFL = Rolling On The Floor, Laughing = Auf dem Boden wälzen, lachend. SCNR = Sorry, Could Not Resist = Sorry, Ich konte nicht wiederstehen. AFAIK = As Far As I Know = So weit ich weis|BTW = By The Way = Nebenbei bemerkt IMHO = In My Humble Opinion = meiner bescheidenen Meinung nach |Zufallssig. 9
hi, das mit dem zeilenanfang war die loesung. danke !!! ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
Hallo, Am Montag, 11. März 2002 13:46 schrieb Sascha Andres:
hi,
On Mon, Mar 11, 2002 at 01:01:01PM +0100, Thomas Hart wrote:
thomas@4ppc31x:~/tmp > cat myfile
steht seitentitel drin. mein auruf sieht so aus: sed -e "/^\# DEMO INSIGHT/ r ./headline.txt" < input das ergebnis: <td width="520" height="64" valign="middle" align="center"> <font face="Helvetica" size="4"><b>%%HEADLINE%<b></font> # DEMO INSIGHT </td> mein sziel ist es in einem html template zb %%HEADLINE% ueberall zu ersetzen. aber nicht mal das einfuegen klappt.
!!! Untersuch' mal, ob es die Datei './headline.txt' überhaupt
gibt. Der `sed'-Befehl 'r' meldet nämlich keinen Fehler, wenn
er sie nicht findet.
Gruß
Bertram
--
Bertram Scharpf
participants (4)
-
B.Brodesser@t-online.de
-
Bertram Scharpf
-
Sascha Andres
-
Thomas Hart