在bash中将一行从一个文件复制到另一个文件

时间:2014-09-01 19:09:19

标签: bash sed

我尝试从file1复制一行,然后使用bash将该行写入file2的第10行。

以下是我的尝试:

sed -e '10i' file2 <file1

2 个答案:

答案 0 :(得分:1)

我不确定你的线路来自哪里,但你可以这样做:

sed 'NUMq;d' file1 >>file2

NUM替换为您希望从file1追加到file2的行号。

修改

我认为这就是你想要的:

sed -i .bak "10 i\\
`sed 1q\;d file1`
" file2

答案 1 :(得分:0)

这可能适合你(GNU sed&amp; Bash):

sed $'10{e sed "1!d" file1\n;d}' file2

或使用管道的其他方式:

sed '1!d' file1 | sed -e '10{r /dev/stdin' -e 'd}' file2

或第三种方式(可能更直观但仅适用于单一替换线):

sed '10\c'$(sed '1!d' file1) file2