awkでファイルの特定パターン間の文字列を抜きたい
例えば, docker-compose.ymlからパターンマッチで文字列を抜き出す
version: "3"
services:
web:
build:
context: ./
dockerfile: Dockerfile
mysqld:
build:
context: ./mysql
dockerfile: Dockerfile.mysql
awkの使い方は以下
$ awk '/開始地点のパターン/,/終了地点のパターン/'
,(カンマ)
が範囲指定を意味するらしい。
$ cat docker-compose.yml | awk '/^service/,/mysqld/'
services:
web:
build:
context: ./
dockerfile: Dockerfile
mysqld:
こんな感じの挙動になる。
docker-composeからサービス名だけ抜くときとかに便利