In den yml
Dateien von Docker Compose
sind die Volumes in einem Abschnitt deklariert, der mit volumes:
Zeile und beginnt gefolgt von Mustern wie - host/dir:guest:dir
. Die Sesktion endet mit dem Start des nächsten Abschnitts, dessen Name nicht immer derselbe ist, und es könnte unter anderem ports:
, environment:
und networks:
sein. Es gibt normalerweise mehr als einen Abschnitt volumes:
, und die Anzahl der Zeilen in jedem dieser ist nicht bekannt (und ist nicht über die volumes:
Abschnitte konstant).Ein Befehl grep (oder sed oder awk) zum Auswählen aller Zeilen nach einem bestimmten Muster nach einer bestimmten Startzeile in einer Datei
I müssen alle Volumen Erklärungen extrahieren (d.h. - host/dir:guest:dir
) aus allen volumes:
Abschnitte einer yml
Datei.
Danke!
Ein Beispiel yml
Datei:
version: '2'
services:
service1:
image: repo1/image1
volumes:
- /dir1/dir2:/dir3/dir4
- /dir5/dir6:/dir7/dir8
ports:
- "80:80"
service2:
image: repo2/image2
volumes:
- /dir9/dir10:/dir11/dir12
environment:
- A: B
Parse eine 'yaml' mit regex ist, nicht eine gute Idee. Python hat ein 'yaml' Modul um mit – Inian
zu arbeiten Danke @Inian. Ich brauche eine 'Bash'-Einstrich-Lösung. – imriss
gut, wenn Sie glauben, Regex kann dieses Problem lösen, dann fügen Sie Ihre eigenen Bemühungen zu Fragen .. und fügen Sie die erwartete Ausgabe für die Klarheit .. – Sundeep