awk:在匹配到文件末尾后打印行

iva*_*van 7 awk text-processing

我正在尝试解析如下使用消息:

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help
...
Commands:
  build              Build or rebuild services
  bundle             Generate a Docker bundle from the Compose file
...
Run Code Online (Sandbox Code Playgroud)

Command仅获取名称。所以我希望跳过所有行并包括该Commands:行,然后在所有后续行上打印第一个单词,即

  build
  bundle
  ...
Run Code Online (Sandbox Code Playgroud)

目前我正在做

docker-compose --help | sed -e '1,/Commands:/d' | awk '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但我怀疑我可以用一个awk. 到目前为止我最接近的是:

docker-compose --help | awk '/Commands:/,0 { print $1 }'
Run Code Online (Sandbox Code Playgroud)

但这包括匹配的Commands:行。可以做到吗?

Ste*_*uch 13

如果您标记了围栏的存在,那么您可以使用它来决定打印下一行,然后像:

awk 'x==1 {print $1} /Commands:/ {x=1}'
Run Code Online (Sandbox Code Playgroud)