我如何使用 SED/AWK 将一个文件的内容移动到另一个文件中的某个位置

我如何使用 SED/AWK 将一个文件的内容移动到另一个文件中的某个位置

我有一个仅包含证书的文件,我想将其移动到第二个文件并覆盖文件中的一行。

证书格式为:

-----BEGIN CERTIFICATE-----
abc
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
xyz
-----END CERTIFICATE-----

第二个文件是一个 yaml 文件,我想用证书覆盖 Value4

Value1
Value2
Value3
Value4

输出将是

Value1
Value2
Value3
-----BEGIN CERTIFICATE-----
abc
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
xyz
-----END CERTIFICATE-----

关于如何做到这一点有什么想法吗?理想情况下,我不想使用行号,因为第二个文件将来可能会在证书下方添加新字段。

答案1

perl -ne '
  print /value4/ ? <STDIN> : $_;
' yaml < cert

value4 行打印整个标准输入,否则使用常规输入。

相关内容