我有一个名为的文本文件:" 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的使用无效
答案 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