如何使用sed命令在文件中的特定位置添加命令输出的内容?

时间:2014-02-28 12:58:02

标签: shell unix sed

我有以下文件。

cat addtext
This is sparta. 
Bye.

cat mainfile
abc
pqr

我希望我的输出看起来像 -

This is sparta. 
abc
pqr
Bye.

即。从另一个文件的第二行添加的第一个文件的内容。 我正在尝试使用sed命令。

sed -i '1s/^/$filecontent\n/' abc.test

其中

filecontent=`cat addtext`

但它不是替换变量的值并附加值$ filecontent而不是它的内容,即addtext文件的内容。 我该如何解决这个问题?我们如何在sed中使用其他命令?

2 个答案:

答案 0 :(得分:2)

您不需要使用cat

cat file2 fil1

等效的sed命令:

sed '' file2 file1

或者在第1行使用后在file1中插入file2的内容:

sed '1 r file2' file1

答案 1 :(得分:1)

LineWhere=1
File2Insert=addtext
File2Modify=mainfile

sed "${LineWhere} r ${File2Insert}" ${File2Modify} > DestinationFile

动作是r在指定行时读取文件。变量只是在这里展示如何和通用(在这种情况下必须使用双引号)