我有两个文件data.txt
和results.txt
,假设data.txt
中有5行,我想复制所有这些行并将其粘贴到文件results.txt
中,从行号 4 。
以下是一个示例:
Data.txt文件:
stack
ping
dns
ip
remote
Results.txt文件:
# here are some text
# please do not edit these lines
# blah blah..
this is the 4th line that data should go on.
我尝试了sed
各种组合,但我无法让它发挥作用,我不确定它是否也适合这个目的。
sed -n '4p' /path/to/file/data.txt > /path/to/file/results.txt
以上代码仅复制第4行。这不是我想要实现的目标。如上所述,我需要复制data.txt
中的所有行并将其粘贴到results.txt
中,但必须从第4行开始,而不修改或覆盖前3行。
非常感谢任何帮助。
修改
我想覆盖从行号 4 开始的复制数据 文件 results.txt 。所以,我想离开前3行没有 使用复制的数据修改并覆盖文件的其余部分 来自
data.txt
档案。
答案 0 :(得分: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
答案 1 :(得分:2)
您可以使用流程替换为cat
提供一个可以读取的fifo:
cat <(head -3 result.txt) data.txt > result.txt
答案 2 :(得分:1)
head -n 3 /path/to/file/results.txt > /path/to/file/results.txt
cat /path/to/file/data.txt >> /path/to/file/results.txt
答案 3 :(得分:1)
如果你可以使用awk:
awk 'NR!=FNR || NR<4' Result.txt Data.txt