sed insert after and before

satriani

satriani

SysLion
[GELÖST] sed insert after and before

Hallo liebe Leute,

ich kann folgenden Befehl "sed insert after" problemlos ausführen, unter FreeBSD 10.1 #/bin/csh
Code:
sed "/zeile3/r /tmp/file1.txt" /tmp/file2.txt
zeile1
zeile2
zeile3
Inhalt der
Datei
file1.txt
zeile4
zeile5

leider funktioniert das nicht mit diesem "sed insert before"
Code:
sed "/zeile3/i /tmp/file1.txt" /tmp/file2.txt

es gibt Fehler aus
sed: 1: "/zeile3/i /tmp/ ...": command i expects \ followed by text

Das hinfügen der Backslash ergibt wiederum
sed: 1: "/zeile3/i /tmp/ ...": extra characters after \ at the end of i command

Gruß.
 
Zuletzt bearbeitet:
Laut meinem 'info sed' (GNU sed allerdings), bedeutet der Befehl 'i' was ganz anderes als 'insert before' und hat auch eine andere Syntax als 'r'. Ist das unter FreeBSD nicht so?
 
Hallo tgruene und danke dir,
du hast natürlich recht hier man sed aus FreeBSD
Aber wie kriege ich sonst den Inhalt einer Textdatei in die andere hinein und zwar über eine bestimmte Zeile?
 
Probiere mal mit sed -e ... gibt sowieso Unterschiede bei verschiedenen sed-Versionen, vielleicht hast du da eine Ausnahme erwischt.


Sonst halt zu Fuß:

Code:
## zum Hinzufügen /tmp/file1.txt
## Originaldatei  /tmp/file2.txt

Zeilennummer=`grep -n $Suchmuster /tmp/file2.txt | cut -d \: -f 1`
Zeile=`$Zeilennummer + 1`  #weiss nicht mehr genau
sed -ne ''"$Zeile"',7777p' /tmp/file2.txt > /tmp/tempdat.txt
#löschen
sed -i ''"$Zeile"',7777'd /tmp/file2.txt
#Detail hinzufügen
cat /tmp/file1.txt >> /tmp/file2.txt
#Rest
cat /tmp/tempdat.txt >> /tmp/file2.txt


Nicht schön aber soll ja nur helfen und nicht schön aussehen. Ich habe die Zeilen jetzt nicht getestet, wollte nur nen anderen Ansatz geben damit du vielleicht weiter kommst.
 
Gelöst

Danke für den Vorschlag Programmer78,
ich habe wohl die eleganteste Lösung herausgefunden :)
Hier für diejenigen die es mal villeicht brauchen:

Code:
sed -e '/zeile3/r /tmp/file1.txt' -e //N /tmp/file2.txt

Gruß.
 

Ähnliche Themen

Wie komme ich an den Inhalt des Inhalts einer Variable?

NagiosGrapher 1.7.1 funktioniert nicht

dovecot und postfix Konfiguration Problem

HP PSC 2175 - CUPS druckt nicht

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Zurück
Oben