如何使用shell脚本从一个文件中插入另一个文件的中间行

时间:2014-02-17 02:17:27

标签: shell

我打算使用shell脚本将文件的某些行复制到另一个文件中的指定位置。我只知道一个命令:

cat A >> B

但是,它只适用于复制文件A的所有行并将它们粘贴到结束文件B.相反,我想在文件B的中间插入文件A中的内容。

实施例

档案A:

aaa
bbb
ccc
ddd

档案B:

AAA
BBB
CCC

然后将文件A的第2-3行复制到第2行之后的文件B中:

AAA
BBB
bbb
ccc
CCC

换句话说,我想在任何时候将文件的一些连续行插入另一个文件中。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

我不确定任何命令,但我有解决方法,

如果您知道要添加内容的行号,那么为什么不使用头部和尾部命令

假设您想要在第3行的某个文件A中添加aaa A就像,

AAA

BBB

CCC

DDD

然后

head -n 2 > B   # this will copy first 2 lines 
echo "aaa" >> B # your desired string at line no 3
tail -n 2 >>B  # remaining lines into file

而不是尾巴,你可以尝试

'sed 1,2d' A >> B

awk 'NR>2' A >> B

用于将剩余行写入B

这可以用于较小的文件,但对于较大的文件会很重

答案 1 :(得分:0)

好吧,如果你有标准的Linux工具,你可以说

paste -d "\n" A B