2017-12-08 6 views
0
red  
blue  
water  
gray  
white 

IWie Zeichenfolge hinzuzufügen

sed '/blue/,/gray/!b;//!d;/blue/r file2' file1

mit sed anstelle von Datei verwenden möchten Datei Als

in diesem Replace text between two lines with contents of a file stored in a variable in sed Thread erwähnt Aber statt file2 i neu eingeben möchten Zeichenkette direkt im Befehl. Kann mir jemand zeigen, wie man das macht?

+0

Sie meinen, Sie die 'sed' Betrieb auf einer Ausgabe eines Befehls anwenden möchten? Kannst du mehr erklären? – Inian

+0

@Inian Nein. Ich möchte keinen neuen Inhalt von 'file2' erhalten, sondern stattdessen string (neuen Text) in diese' sed'/blue /,/grey /! B; //! D;/blue/r file2 'file1' Ich kenne die Syntax dafür nicht – HardikHarpal

Antwort

1

können Sie diese verwenden sed:

sed '/blue/,/gray/!b;//!d;/blue/a SOMEDATA' file 

Von man sed:

a \ 
    text 

anhängen Text, der jedes eingebettete Newline ein Backslash hat.

Ein weiteres Beispiel:

$ sed '/blue/,/gray/!b;//!d;/blue/a \ 
> LINE 1 \ 
> LINE 2 \ 
> LINE 3' file 

red  
blue  
LINE 1 
LINE 2 
LINE 3 
gray  
white 
+0

ja es hat funktioniert. Also, ist es '/ a' für append und' /r' für das Lesen von Datei? – HardikHarpal

Verwandte Themen