如何从特定行开始将数据从文件复制到另一个文件

Min*_*lla 5 unix linux bash sed

我有两个文件data.txtresults.txt,假设有5行data.txt,我想复制所有这些行,并将其粘贴文件results.txt从行号开始4.

以下是一个示例:

Data.txt文件:

stack
ping
dns
ip
remote
Run Code Online (Sandbox Code Playgroud)

Results.txt文件:

# here are some text
# please do not edit these lines
# blah blah..
this is the 4th line that data should go on.
Run Code Online (Sandbox Code Playgroud)

我尝试sed了各种组合,但我无法使它工作,我不确定它是否也适合这个目的.

sed -n '4p' /path/to/file/data.txt > /path/to/file/results.txt
Run Code Online (Sandbox Code Playgroud)

以上代码仅复制第4行.这不是我想要实现的目标.正如我上面所说,我需要复制所有行data.txt并粘贴它们,results.txt但它必须从第4行开始,而不修改或覆盖前3行.

任何帮助是极大的赞赏.

编辑:

我想覆盖文件results.txt中从第4行开始的复制数据.因此,我希望保留前3行而不进行修改,并使用从文件复制的数据覆盖文件的其余部分.data.txt

Cra*_*tey 4

这是一种在 cron 中运行良好的方法。丢失数据或损坏文件的可能性较小:

# preserve first lines of results
head -3 results.txt > results.TMP

# append new data
cat data.txt >> results.TMP

# rename output file atomically in case of system crash
mv results.TMP results.txt
Run Code Online (Sandbox Code Playgroud)