0

我是 Linux 新手,并且有一项具有挑战性的任务。

我有 3 个数据文件,需要执行以下操作:

  1. 转到文件1的第31行,将其删除
  2. 从文件 2 中读取 1 行并添加以代替已删除的行
  3. 转到文件 1 的第 97 行,将其删除,然后从文件 2 中读取第 1 行,并在文件 1 中添加代替已删除的行。

保持相同的文件(即文件)也很重要,不能更改。

我尝试了不同版本的sedand perl,使用缓冲区复制技巧,但没有成功。

我愿意接受所有建议,并请专家给我建议。

4

1 回答 1

1

我在您的问题中找不到对第 3 个文件的引用,但如果您的意思是用文件 2 的第 1 行替换文件 1 的第 31 行,用文件 2 的第 2 行替换文件 1 的第 97 行:

sed -i -e '30R f2
31d;96R f2
97d' f1

f2 之后的新行很重要,因此 sed 知道它是文件名的结尾。

请注意,该R命令是 GNU 扩展,它不是标准的。

于 2012-02-09T22:07:43.713 回答