pat*_*pat 3 unix linux shell grep
给定一个包含的纯文本文件
FOO=foo
BAR=bar
BAZ=baz
Run Code Online (Sandbox Code Playgroud)
我们如何grep使用密钥的价值?
fed*_*qui 13
看看背后:
$ grep -Po '(?<=^FOO=)\w*$' file
foo
Run Code Online (Sandbox Code Playgroud)
我也喜欢awk它:
$ awk -v FS="FOO=" 'NF>1{print $2}' file
foo
Run Code Online (Sandbox Code Playgroud)
甚至更好:
$ awk -F= -v key="FOO" '$1==key {print $2}' file
foo
Run Code Online (Sandbox Code Playgroud)
用sed:
$ sed -n 's/^FOO=//p' file
foo
Run Code Online (Sandbox Code Playgroud)
或者即使使用Bash -ONLY,如果您对不包含任何奇怪值的文件有信心,您也可以获取文件和echo所需的值:
$ (source file; echo "$FOO")
foo
Run Code Online (Sandbox Code Playgroud)
grep "^FOO=" | cut -d"=" -f2-
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个,因为它对我来说很容易记住。
解释:它只是简单地搜索以FOO(因此是^)开头的行并将其切割成=碎片,然后用 获得第二块-f2-。