使用sed从另一个文件的第一行之前的文本文件中输入文本

时间:2016-02-12 17:52:18

标签: sed

我有一个名为的文本文件:" header"我希望将其作为"另一个文件"的标题插入其中已包含一些文字。 最终输出应为:

"头"文字内容  正上方 " otherfile"文字内容

在ubuntu linux系统上我尝试了以下内容,这让我很接近但不完全:

cat otherfile | sed '1 r header' - > myoutputfile

此解决方案的问题在于它输入了"标题"的所有内容。 " otherfile"的第一行之后的一行,而不是" otherfile"的第一行之前的行。

有没有任何简洁的方法来制作我的"标题"文件显示为"其他文件"的标题?

我应该提到以下尝试

cat otherfile | sed '0 r header' - > myoutputfile

失败,并显示以下错误消息: sed:-e表达式#1,字符3:行地址0的使用无效

3 个答案:

答案 0 :(得分:2)

您问题中所述问题的答案很简单:

-'

但要在评论中回答这个问题:假设cat header otherfile > myoutputfile 是某个管道,而不是实际上是文件,您只需要:

cat otherfile

e.g:

cat otherfile | cat header - > myoutputfile

答案 1 :(得分:1)

这可能适合你(GNU sed):

sed -e '1h;1r header' -e '1d;2H;2g' file

或:

sed '1e cat header' file

答案 2 :(得分:-1)

好的,这是适用于我的解决方案:

cat otherfile | sed -e '2{x;G};1{h;rheader' -e 'd}' - > myoutputfile