0

我正在为 Docker 容器编写管理脚本。现在用户必须在使用它之前配置某些变量。通常,这些变量已经在 Dockerfile 中定义,所以默认应该是读取这些值。

我在使用这些 Dockerfile 中使用的数组格式时遇到了一些问题。如果我有卷定义:VOLUME ["/root/", "/var/log/"]文件脚本应该能够找出 /root/ 和 /var/log,我还没有能够做到这一点。

到目前为止,我已经能够从文件中获取“/root/”、“”和“/var/log”,grep VOLUME Dockerfile | cut -c 8- | grep -o -P '(?<=").+?(?=")'但这仍然包括应该被忽略的“,”。

有人对如何正确解析这个有建议吗?

4

1 回答 1

1

awk救援!

$ echo VOLUME ["/root/", "/var/log/"] | 
  awk -F'[ ,\\[\\]]' '/VOLUME/{for(i=3;i<=NF;i+=2) print $i}'

/root/
/var/log/

通过设置分隔符,您可以提取所有字段。

于 2016-03-29T20:26:59.307 回答