【发布时间】:2021-10-04 23:27:23
【问题描述】:
在这里,我们有两个文件。我们需要从文件 1 中复制一个密钥,并且需要使用 sed 命令用特定的字符串“key”替换文件 2 中的密钥。我们尝试了以下命令:
sed -e '3 /key/{r file1' -e 'd}' file2
sed -n "3 s/key/$(cat file 1 |grep ^Key|cut -d ' ' -f2)/" file2
文件 1
ABCD
EFGH
Key: qvUkD6QaFBA1jYEpynivMoQx+9V71F4+fdn1TIUKPBNny/3zCnjihd1mwxZg==
文件 2
IJKL
MNOP
secret key;
MNOP
预期结果:
IJKL
MNOP
secret qvUkD6QaFBA1jYEpynivMoQx+9V71F4+fdn1TIUKPBNny/3zCnjihd1mwxZg==;
MNOP
【问题讨论】:
-
它是否必须被sed?
we need to copy a key from file 1您不想先提取文件1中的键值吗?$(cat file1)是整个文件,不是关键。 -
太好了,所以看看 shell 中单引号和双引号之间的区别 - 您在上面的 sed 命令中尝试了单引号。此外,它是第 3 行,而不是 11,并且该行包含
secret,而不是key -
远程
-n,所以它会打印一些东西。 -
@KamilCuk,感谢您的回复,请正确转发问题!实际上行包含秘密旁边的
key。