当前位置: 首页 > 面试题库 >

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

诸葛康胜
2023-03-14
问题内容

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

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

对于file2:

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 是你的朋友

脚本

# awk 'NR==FNR && FNR<=3 || NR>FNR && FNR>4' file2 file1

输出量

1a
2a
3a
5
6
7
8
9
10

提示

  • NR-已处理的记录总数
  • FNR-处理的记录总数,但在读取新文件时会重置。
  • 当条件评估为true且没有给出任何额外的命令时,awk仅打印。

都好 :-)



 类似资料:
  • 问题内容: 我想在阅读文本文件时跳过前17行。 假设文件看起来像: 我只想要好东西。我正在做的事情要复杂得多,但这是我遇到的麻烦。 问题答案: 使用切片,如下所示: 如果文件太大而无法加载到内存中:

  • 我很难找到一个好方法来找到一列中的所有负条目,并将它们向上移动,与现有条目相加(即从当前条目中减去负条目),直到所有值都为正。 重要的是,最终数据帧没有负值 根据此处已提供的表格: 出席: 渴望的:

  • 本文向大家介绍js实现时间显示几天前、几小时前或者几分钟前的方法集锦,包括了js实现时间显示几天前、几小时前或者几分钟前的方法集锦的使用技巧和注意事项,需要的朋友参考一下 这里汇总了js实现时间显示几天前、几小时前或者几分钟前的常见方法。分享给大家供大家参考。具体如下: 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago 方法二: (通过freemark

  • 我正在使用光栅文件进行一些计算。我特别计算移动平均线。我想知道在任何计算之前热分配值给NA。 但是我有一个错误: 我也试过这个: 没有错误,但当我查看结果时,我发现没有任何变化。

  • 我想将数据帧列中的一个值替换为另一个值,我必须对许多列执行此操作(假设30/100列) 我已经经历过这个和这个了。 我可以在y列和z列中分别用Null替换“baz”。但我想对所有列都这样做——类似于下面的列表理解方式

  • 问题内容: 如何使用Java在多个文本文件中查找和替换单词? 这是我一次做的方法… 问题答案: 从Commons IO使用: