获取存储在文件中的变量的值



我正在尝试获取存储在另一个 shell 脚本文件中的变量的输出。 例:

cat abc.log
var1=2
var2=2
var3=25

我正在编写一个脚本来获取var3的值。

提前谢谢你。

awk -F= '$1 ~ /^[[:space:]]*var3/  { print $2 }' abc.log

将字段分隔符设置为 =,然后在行包含"var3"的地方,打印第二个字段。

或者,您可以:

source abc.log

然后:

echo $var3

使用sed,您可以使用以下方法隔离具有特殊性的25

sed -n '/^[[:space:]]*var3=/s/^[^=]*=//p' file

解释

这是一般的替换形式,前面s/find/replace/有一个匹配的表达式。总形式是/match/s/find/replace/.选项-n抑制图案空间的正常打印,末尾的p告诉sed打印发生匹配和替换的行。具体说来

  • /match/查找具有任意数量的前空格字符后跟var3=的行。POSIX[:space:]字符类匹配任何空格,
  • /find/是从'^'开头锚定的所有字符,这些字符不是[^=]字符,然后匹配文字'='字符,最后
  • /replace/是空字符串,不单独打印25

示例使用/输出

$ sed -n '/^[[:space:]]*var3=/s/^[^=]*=//p' file
25

grep单行,如果你的grep支持与Perl兼容的正则表达式(-P选项;并非所有grep都支持)

grep -Po '^s*var3=K.*' abc.log

grep -Po '^s*var3=K.*' abc.log | tail -n1

为了得到var3的最后一个值,如果有多个var3s是可能的。

相关内容

  • 没有找到相关文章

最新更新