Also ich Rätsel jetzt schon weit über eine Stunde...
Ich wollte nur einen kurzen Textblock am Beginn einer Textdatei
einfügen. Hätte man natürlich mit cat machen können, mit einer
temporären Datei. Mach ich jetzt auch -- bzw. morgen.
Aber da ich eh sed verwende, dachte ich, ich mache es mal damit.
Hier ein Test (hhh.txt ist die vorhandene Datei, xxx.yyy das Bash-Script
und i die Variable). Der erste Versuch, der meiner Meinung nach
funktionieren sollte, bringt eine Fehlermeldung, der zweite geht dann
seltsamer weise, obwohl das eher unsinnig ist.
1 | stefan@AMD64X2 ~/workdirgtk3 $ cat hhh.txt
|
2 | Text in Datei
|
3 | hhh.txt schon vorhanden.
|
4 | stefan@AMD64X2 ~/workdirgtk3 $ cat xxx.yyy
|
5 | i='line1
|
6 | line2
|
7 | line3'
|
8 |
|
9 | echo "$i"
|
10 |
|
11 | sed -e "1i$i" hhh.txt
|
12 |
|
13 | echo '---'
|
14 |
|
15 | i='line1\
|
16 | line2\
|
17 | line3'
|
18 |
|
19 | echo "$i"
|
20 |
|
21 | sed -e "1i$i" hhh.txt
|
22 |
|
23 | stefan@AMD64X2 ~/workdirgtk3 $ bash xxx.yyy
|
24 | line1
|
25 | line2
|
26 | line3
|
27 | sed: -e expression #1, char 10: extra characters after command
|
28 | ---
|
29 | line1\
|
30 | line2\
|
31 | line3
|
32 | line1
|
33 | line2
|
34 | line3
|
35 | Text in Datei
|
36 | hhh.txt schon vorhanden.
|
37 | stefan@AMD64X2 ~/workdirgtk3 $
|