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 に答える