gpt4 book ai didi

bash - 使用一个命令的输出作为 sed 中的替换文本

转载 作者:行者123 更新时间:2023-11-29 09:18:50 24 4
gpt4 key购买 nike

我有一个带有一堆键值对的 .env 文件,如下所示:

NAME=John Doe
CITY=Timbuctoo
CSS=<some value>
PORT=3000

这是我试图以编程方式更改的第三行。是一个动态生成的 md5 哈希,每次我运行命令时,它都需要被一个新的哈希替换。这就是我生成哈希的方式:

$ date +%s | md5sum | cut -d' ' -f 1

并且我希望在使用 sed 时使用上述命令的输出作为替换文本。但无法弄清楚如何让它发挥作用。以下是我目前的解决方案,远未完成:

$ date +%s | md5sum | cut -d' ' -f 1 | sed -i.bak 's/^\(CSS=\).*/replacement/' ~/nano/.env

应该用什么代替“替换”以确保原始值被 cut 返回的值替换?

最佳答案

你可以简单地使用

sed -i.bak "s/^\(CSS=\).*/$(date +%s | md5sum | cut -d' ' -f 1)/" ~/nano/.env

重要的是使用 " 而不是 ' 以便 bash 替换子 shell 命令 $(...)

关于bash - 使用一个命令的输出作为 sed 中的替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com