Bash 如何使用sed而不是从文件向文件添加字符串

Bash 如何使用sed而不是从文件向文件添加字符串,bash,sed,Bash,Sed,我想用 sed'/blue/,/gray/!b、 //!d/蓝色/r文件2'文件1 如本文所述 但我想直接在命令中输入新字符串,而不是file2。有人能告诉我怎么做吗。你可以用这个: 来自man sed: 追加文本,每个嵌入的换行符前面都有一个反斜杠 另一个例子: a \ text 您的意思是要对命令的输出应用sed操作?你能解释更多吗?@Inian No.我不想从文件2中获取新内容,而是直接将stringnew文本放入这个sed'/blue/,/gray/!b、 //!d/蓝色/r文件2

我想用

sed'/blue/,/gray/!b、 //!d/蓝色/r文件2'文件1

如本文所述

但我想直接在命令中输入新字符串,而不是file2。有人能告诉我怎么做吗。

你可以用这个:

来自man sed:

追加文本,每个嵌入的换行符前面都有一个反斜杠

另一个例子:

a \
  text

您的意思是要对命令的输出应用sed操作?你能解释更多吗?@Inian No.我不想从文件2中获取新内容,而是直接将stringnew文本放入这个sed'/blue/,/gray/!b、 //!d/蓝色/r文件2'文件1我不知道它的语法是的,它起作用了。那么,是/a用于追加,还是/r用于从文件读取?
sed '/blue/,/gray/!b;//!d;/blue/a SOMEDATA' file
a \
  text
$ sed '/blue/,/gray/!b;//!d;/blue/a \
> LINE 1 \
> LINE 2 \
> LINE 3' file

red    
blue    
LINE 1 
LINE 2 
LINE 3
gray    
white