我有一个名为.env
的文本文件,如下所示:
SOME_VAR="value"
SOME_VAR_2="value2"
NODE_ENV="staging"
SOME_VAR_3="value3"
我需要提取"
和"
之间以NODE_ENV=
开始的字符串
换句话说,我需要该文件中的字符串staging
,然后我需要使用如下命令。
现在我有这个:
git checkout $(cat .environment)
其中.environment
是一个只有一个值staging
的文件,所以使用这个命令我得到了:
git checkout $(cat .environment)
但是现在我需要我之前所说的,从一个包含多行的文件中提取上述格式的值。
我尝试使用sed
,但不确定如何使用:
sed -r '/NODE_ENV.*/I!d;s/.*:.(.*).}$/\1/' .env
但那是
NODE_ENV="staging"
我需要的是
staging
3条答案
按热度按时间sxpgvts31#
regexp正在查找
:
字符,但文件中没有:
。您应该查找="..."
,并使用捕获组匹配"
之间的内容。使用
-n
选项禁用默认打印,然后将p
附加到命令以在替换后打印匹配行。agxfikkp2#
您可以使用grep提取此值:
输出将为:
wpx232ag3#
您可以合并一些简单的命令: