Replace first few lines with first few lines from other file

后端 未结 3 391
夕颜
夕颜 2020-12-18 10:10

I am working on Linux. I have 2 files - file1.dat and file2.dat.

cat file1.dat
1
2
3
4
5
6
7
8
9
10

and for file2:

cat file         


        
3条回答
  •  萌比男神i
    2020-12-18 10:15

    Following awk may also help you in same, tested codes in GNU awk.

    Solution 1st:

    awk 'FNR==NR && FNR<4{print;next} FNR>4 && FNR!=NR' file2.dat file1.dat
    

    Solution 2nd:

    awk 'FNR==NR && FNR==4{nextfile} FNR==NR{print;next} FNR>4 && FNR!=NR' file2.dat file1.dat
    OR
    awk 'FNR==NR{if(FNR==4){nextfile};print;next}  FNR>4 && FNR!=NR' file2.dat file1.dat
    

    Solution 3rd: Using awk and head and tail command's combinations here.

    awk 'FNR==1{system("head -n3 file2.dat");next} 1' <(tail -n +4 file1.dat)
    

提交回复
热议问题