gpt4 book ai didi

linux - 用其他文件的前几行替换前几行

转载 作者:IT王子 更新时间:2023-10-29 01:03:23 26 4
gpt4 key购买 nike

我在 Linux 上工作。我有 2 个文件 - file1.dat 和 file2.dat。

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

对于文件 2:

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

我想用 file2.dat 的前 3 行替换 file1.dat 的前 4 行。所以我的输出将如下

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

我尝试了以下输入:

sed -i.bak '1,4d;3r file2.dat' file1.dat

但是有了这个输入我有以下输出:

5
6
7
8
9
10

我应该如何修改输入命令?我尝试了各种组合。

最佳答案

遵循 awk 也可以帮助您在 GNU awk 中使用相同的、经过测试的代码。

第一个解决方案:

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

解决方案 2:

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

解决方案 3: 在此处使用 awkheadtail 命令的组合.

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

关于linux - 用其他文件的前几行替换前几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48382204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com