Bash比较两种类型的长字符串输出



我有一个已知的x.yml的良好配置。该配置由30行代码组成,其中只有8行未注释掉,其中两行未注释掉是完全空白的。
结果看起来像

这是的输出grep -v '#' /mnt/data/x.yml

node.name: 123
path.data: "/mnt/data/data"
pipeline.workers: 4
pipeline.batch.size: 250

http.port: 9600-9700
path.logs: "/mnt/data/logs"

或至少与之非常相似。

如果我使用该字符串进行故障排除,我将如何将该字符串与另一个x.yml的输出进行比较?

我会比较两个字符串吗?

if [ "$goodYML" = "$outputYML" ]; then
echo "equal"
else
echo "not equal"
fi

并将上面的整个字符串声明为变量,然后我如何将grep的输出设置为字符串?

您可以使用流程替换

diff <(grep -v '^#' /mnt/data/x.yml) <(grep -v '^#' /mnt/data/y.yml)

任何命令都可以放在<( YOUR COMMAND HERE )


编辑

由于您的文件不是本地的,您可以这样做:

diff <(grep -v '^#' /mnt/data/x.yml) <(ssh user@host grep -v '^#' /mnt/data/y.yml)

所有相关的细节都应该在问题中。

相关内容

  • 没有找到相关文章

最新更新