如何从纯文本中获取键值存储中的值

时间:2015-06-11 09:05:03

标签: linux shell unix grep

给定包含

的纯文本文件
FOO=foo
BAR=bar
BAZ=baz

我们如何使用密钥grep获取值?

4 个答案:

答案 0 :(得分:11)

看看背后:

$ grep -Po '(?<=^FOO=)\w*$' file
foo

我也喜欢awk

$ awk -v FS="FOO=" 'NF>1{print $2}' file
foo

甚至更好:

$ awk -F= -v key="FOO" '$1==key {print $2}' file
foo

使用sed

$ sed -n 's/^FOO=//p' file
foo

如果您对不包含任何奇怪值的文件有信心,或者使用Bash -ONLY,您可以获取文件并echo所需的值:

$ (source file; echo "$FOO")
foo

答案 1 :(得分:2)

试试这个......

grep "^FOO=" file.txt | awk -F"=" '{ print $2 }'

在@fedorqui的帮助下

答案 2 :(得分:2)

简单方法:

grep "^FOO=" | cut -d"=" -f2

我更喜欢这个,因为它对我来说很容易记住。

说明:它只是抓住以FOO开头的那条线(因此是^)并将其与=一起切成碎片然后获得第二块与-f2

答案 3 :(得分:0)

另一个主张:分裂工作

grep "FOO=" file.txt | sed -e 's/.*=//'

grep将获取正确的行

sed将移除(最后)等号的任何内容