sed insert after and before

satriani

SysLion
Beiträge
40
[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:

tgruene

Routinier
Beiträge
418
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?
 

Programmer78

Doppel-As
Beiträge
146
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.
 

satriani

SysLion
Beiträge
40
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

Neueste Themen

Oben